I have a couple of applications where I need to do some generic coding with protobufs. In one case I have a gui that needs to display selected contents out of a message, and in another case I need to transcode from a different message format into a protobuf. It is trivial to hand-write hardcoded stuff for both of these, but it violates the DRY principle, and is error prone, etc.
What I want to do in both cases (the gui) is, by conventionally using the same names for the gui or other message fields as the fields in the protobuf messages, use introspection to do the field mapping. So, for example, given a list of PyQT widgets, I would use the widget names to go find a like-named field in the protobuf message. But since the protobuf message is likely to be composite, and in fact it might be a subfield I need, I have to do some serious introspection. Also, I want to do this kind of at init time BEFORE I receive a message. For example, I might have a PyQT widget named tt_m1, and I want to get the .temperatures.tt_m1.val field out of the following protobuf message structure by setting up a mapping between the widget and the protobuf field at init time. I'd like to do similar things in the opposite direction: given a selected set of protobuf fields, transcode from another message into protobuf contents. Suggestions? message Analog { required double val = 1; enum AnalogStatus { SENSOR_NOMINAL = 0; SENSOR_UNDER_LIMIT = 1; SENSOR_OVER_LIMIT = 2; SENSOR_FAULT = 3; SENSOR_NO_DATA = 4; } required AnalogStatus status = 2; optional double limit = 3; } message Temperatures { optional Analog tt_m1 = 1; optional Analog tt_m2 = 2; optional Analog tt_m3 = 3; optional Analog tt_m4 = 4; } message StatusUpdate { ...stuff... optional Temperatures temperatures = 7; ...stuff... } -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to proto...@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.