On Sun, Feb 16, 2014 at 11:09 AM, Jay Wilson <[email protected]> wrote:
> I created some code that puts 10 GPB messages into a file. When I look at
> the file with a hex editor all of the messages are in the file.
>
> I now want to read the messages back in, processing them 1 at a time. The
> following produces only the last record in the input file. What am I
> missing? How do I read each message individually?
I think you forgot to create a record format. A common one is <varint>
<data> (where the varint says how many bytes the next record is).
>
>
> Yes I know the below is an infinite loop.
>
> require 'protobuf/message/message'
> require 'protobuf/message/enum'
> require 'protobuf/message/service'
> require 'protobuf/message/extend'
>
> module Test
> class Interface < ::Protobuf::Message
> defined_in __FILE__
> required :string, :name, 1
> optional :bool, :deleted, 2
> end
> class System < ::Protobuf::Message
> defined_in __FILE__
> required :string, :name, 1
> optional :bool, :deleted, 2
> end
> class Rec < ::Protobuf::Message
> defined_in __FILE__
> optional :uint32, :timestamp, 1
> optional :System, :system, 2
> repeated :Interface, :interface, 3
> end
> end
>
>
> jrec = Test::Rec.new
> counter = 1
> file = File.open("test", "r")
> while (jrec.parse_from_file(file))
> puts "#{jrec.system.name}: #{counter}"
> counter = counter + 1
> end
> file.close
>
>
> if I do a jrec.display, the last message in the file is what I see.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/protobuf.
> For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/groups/opt_out.