Hi:
   My problem is that when I receive a packet I have to check one field( say 
'int32 COMMAND' ) to decide 
the type of the inner packet. For example:

message OutterPkt {
    required fiexed32 Length = 1;
    required int32 COMMAND = 2;
    required string Content = 3;
}

message InnerPktA {
     required int32 UserID;
     required int16 UserGender;
}

message InnerPktB {
    required string UserName = 1;
    reruired string UserDescripton = 2;
}

my code to process this packet will be:

......
OuuterPkt outp;
outp.ParseFromString(inputbuf);
if (outp.COMMAND == 1) {
    InnerPktA pkta;
    pkta.ParseFromString(outp.Content());
    ......
} else if (outp.COMMAND == 2) {
    InnerPktB pktb;
    pktb.ParseFromString(outp.Content());
    ......
} else {
    ........
}


My question is: I think the pseudo code above is not efficient because it 
parses the buffer twice and there are too many memcpy.
Is there a better way to deal with this situation?
thanks.X

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

Reply via email to