代码之家  ›  专栏  ›  技术社区  ›  C. E.

如何使用C++读取消息的原语?

  •  0
  • C. E.  · 技术社区  · 4 年前

    考虑一个简单的原型Bufff代码:

    message MessageName
    {
      oneof some_options {
        OptionA optionAName = 1;
        OptionB optionBName = 2;
      }
    }
    

    这将生成下面的C++代码(或类似的代码,我手动重命名了一些变量,因此它可能不是100%正确):

    typedef struct _namespace_name_MessageName {
        pb_size_t which_some_options;
        union {
            namespace_name_OptionA optionAName;
            namespace_name_OptionB optionBName;
        } some_options;
    } namespace_name_MessageName;
    

    如何在C++中读取此消息? 我想说的是“如果是选项A,就这么做”和“如果是选项B,就这么做”。我还没弄清楚是怎么回事 which_some_options 不过,我在文档中根本找不到它。我确实读过 this 但我在Protobuf生成的代码中找不到任何提到的方法。如果能举一个例子来说明我应该如何完成我正在努力完成的事情,我将不胜感激。

    0 回复  |  直到 4 年前