Oh, I see. No, CodedOutputStream doesn't support seek functionality, so I
guess you'd have to go with b). Just make sure that you're using
WriteLittleEndian64 and not WriteVarint64.
On Sat, Nov 14, 2009 at 12:05 PM, Fishtank <saptarshi.g...@gmail.com> wrote:
> That's because I don't know the size of data1(and it is not from
> protobuf parse)
> I'm using protobuf for the stream libraries.
> I can either a) loop through the calculation to get the total data
> size, then loop again writing size and data
> or b) loop once, write, get size, seek and adjust size.
> On Nov 14, 2:56 pm, Jason Hsueh <jas...@google.com> wrote:
> > Why can't you write the actual size of data rather than a 0? Just use the
> > ByteSize() method to find out how much data will be written for a
> > buffer.
> > On Sat, Nov 14, 2009 at 11:39 AM, Fishtank <saptarshi.g...@gmail.com>
> > > Hello,
> > > I'm using the following idiom
> > > ZeroCopyOutputStream* raw_output = new FileOutputStream(fd);
> > > CodedOutputStream* coded_output = new CodedOutputStream(raw_output);
> > > The format i'd like is uint64_t, followed by data1, followed by data2.
> > > I write a 0 for the uint64_t, write the data1, record the bytes written
> > > (B), then write data2.
> > > I'd like to seek to the beginning of the file and change the uint64_t
> > > val (which was 0 ) to B.
> > > (data2 is updated much more frequently than data1)
> > > It appears codedoutputstream doesn't have a seek, so I'm thinking ,
> > > after the above steps
> > > a) deleting the CodedOutputStream and Zero...
> > > b) seek on the fd, and update the value.
> > > Does this sound right?
> > > Regards
> > > Sapsi
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To post to this group, send email to firstname.lastname@example.org
To unsubscribe from this group, send email to
For more options, visit this group at