Próbuję wysyłać dane protobuf od strony cpp do strony java.Jak określić typ komunikatu w protobuf, aby móc używać tego type.parsefrom (byte [])
Mam kilka typów komunikatów zdefiniowanych w .proto
Na stronie CPP, mam teksty stałe dla każdego typu wiadomości i dodaję go do wyjścia buf następująco:
uint8_t* __temp = (uint8_t*)(buf);
*__temp++ = (type) >> 8;
*__temp = (type) & 0x00FF;
Jak to zrobić dostać ten „typ”, który dodałem do buf, tak, że mogę osiągnąć coś podobnego
MessageType parseFrom(byte[] data);
Dzięki, to jest to, na co patrzę - wygląda na to, że mogę to zrobić w ten sposób - https://developers.google.com/protocol-buffers/docs/techniques#union –
@ android.developer Ta dokumentacja jest nieaktualna; poprzedza wprowadzenie 'oneof'. Jeśli używasz protokołu protobuf 2.6 lub nowszego, zdecydowanie powinieneś używać 'oneof'. Złożyłem błąd dla osób protobuf, aby zaktualizować dokumenty. https://github.com/google/protobuf/issues/452 –
Dzięki, użyjemy 'oneof', a następnie –