I was recently working on an append only file data store. I am building a list of the data at load time. The code that builds the index doesn’t know how to read anything, but the header information for an object. I have another class which implements ISerializer to handle reading and writing the objects that I want to store. The ISerializer interface has a method called SkipObject which is supposed to advance the the stream past the object, which will have it at the start of the next object’s header. The serializer can know how long the object is because the first 4 bytes of the object make up an integer that is the length of the object in bytes.
Here is what I initially had for the SkipObject method:
Can you spot the bug? I'll post the answer tomorrow.