[protobuf] Re: Seek in a codedoutputstream

2009-11-16 Thread Jason Hsueh
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.

 Regards
 sapsi


 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
 protocol
  buffer.
 
  On Sat, Nov 14, 2009 at 11:39 AM, Fishtank saptarshi.g...@gmail.com
 wrote:
 
   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 protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~--~~~~--~~--~--~---



[protobuf] Re: Seek in a codedoutputstream

2009-11-14 Thread Jason Hsueh
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 protocol
buffer.

On Sat, Nov 14, 2009 at 11:39 AM, Fishtank saptarshi.g...@gmail.com wrote:


 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 protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~--~~~~--~~--~--~---



[protobuf] Re: Seek in a codedoutputstream

2009-11-14 Thread Fishtank

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.

Regards
sapsi


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 protocol
 buffer.

 On Sat, Nov 14, 2009 at 11:39 AM, Fishtank saptarshi.g...@gmail.com wrote:

  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 protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~--~~~~--~~--~--~---