Your approach actually won't work (at least, as you've written the code) because if you write two messages to a stream without any sort of delimiter, it's impossible to figure out later where one message ends and the other starts. But I suggest doing this instead:
message A { ... } message B { required A a = 1; ... } In other words, change inheritance to composition. On Mon, Aug 3, 2009 at 2:00 PM, Tai <maitai.tru...@gmail.com> wrote: > > Hi again, > > I have two classes where B extends from A. Since both classes are > legacy and as far as I understood protocol buffers I write a proto > file for class A. For serialization and deserialization I just add the > methods writeObject() and readObject() to class A. > > Now I wonder how to write the proto file for class B which is a > subclass of A? Is it like this that I define in the B proto file the > attributes defined in B and then in Class B's methods I do this: > > private void writeObject(java.io.ObjectOutputStream out) throws > IOException { > Builder builder = A.AttributeA.newBuilder(); > builder.setAttributeA(attributeA); > A.AttributeA message = builder.build(); > message.writeTo(out); > > Builder builder2 = B.AttributeB.newBuilder(); > builder2.setAttributeB(attributeB); > B.AttributeB message2 = builder2.build(); > message2.writeTo(out); > } > > private void readObject(java.io.ObjectInputStream in) > throws ClassNotFoundException, IOException { > A.AttributeA message = A.AttributeA.parseFrom(in); > attributeA = message.getAttributeA(); > > B.AttributeB message2 = B.AttributeB.parseFrom(in); > attributeB = message2.getAttributeB(); > } > > Is this the standard approach? > > Thanks Tai > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---