Serialized thrift objects aren't fixed size, nor do their in-memory representations reflect their serialized representation. Unless there's more magic to sizeof() than I was expecting, you need to look at the size of the buffer after you write out, not the size of the struct.
On Fri, Jul 23, 2010 at 1:27 PM, Raghava Mutharaju < [email protected]> wrote: > Hi all, > > I have serialized couple of Employee objects (binary protocol) and saved > the > byte array into a file. I am using C++ to deserialize. I would reach bytes > of one Employee from the file each time and give it to read() method. If I > use sizeof(Employee), it does not give the right size. > > Some statistics from a sample run: > > Total Employee objects serialized = 10 > Total bytes in the file = 690. So each Employee object size should be 69 > bytes. > sizeof(Employee) gives 96. > > This seems to be a frequently used operation. How can this be done? > I would read each object, fill the TMemoryBuffer and use it to construct > TBinaryProtocol. > > Thank you. > > Regards, > Raghava. >
