Extensions becoming unknown fields

2008-10-28 Thread alent427

I have been trying to use protocol buffers to communicate between two
processes over a network.  In doing so, I'm experiencing a problem
where I create a protocol buffer message and set it's extension, but
then when I receive it on the other process, the extension doesn't
register, it turns up as an unknown field.  I've gotten around it by
checking the unknown fields, but I'd prefer not to.  What could I be
doing wrong?

Here is basically what the .proto file looks like:
message Message {
optional string message = 1;
extensions 10 to 100;
}

message Extension {
extend Message {
optional Extension extensionName = 10;
}
optional int32 data = 1;
}

what the code on the sender side looks like:
// init builders
Message.Builder msgBuilder = Message.newBuilder();
Extension.Builder extensionBuilder = Extension.newBuilder();
// set extension
msgBuilder.setExtension(Extension.extensionName,
extensionBuilder.setData(1).build());
// build, convert to a byte array, and send
send(msgBuilder.build().toByteArray());

and on the receiver side:
// receive the message
byte[] buffer = receive();
// parse the message from the array
Message msg = Message.parseFrom(buffer);
// check if message has the extension
if(msg.hasExtension(Extension.ExtensionName)) // this returns
false = (
// blah blah blah

Thanks for any insight!
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~--~~~~--~~--~--~---



Re: Extensions becoming unknown fields

2008-10-29 Thread alent427

On Oct 29, 4:42 am, Jon Skeet [EMAIL PROTECTED] wrote:
 You need to pass in an ExtensionRegistry in the parseFrom call. Have a
 look at the unit tests for examples (search for extension).

Thanks Jon!  I think I have a better understanding of how things work
now.
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~--~~~~--~~--~--~---