相关疑难解决方法(0)

在协议缓冲区中定义字典

我是协议缓冲区和C++的新手,所以这可能是一个基本问题,但我没有找到答案的运气.基本上,我想要在我的.proto文件中定义的字典的功能,如enum.我正在使用协议缓冲区来发送数据,我想定义单位及其各自的名称.一个enum允许我定义单位,但我不知道如何将人类可读的字符串映射到那个.

作为我的意思的一个例子,该.proto文件可能看起来像:

message DataPack {
    // obviously not valid, but something like this
    dict UnitType {
        KmPerHour = "km/h";
        MiPerHour = "mph";
    }

    required int id = 1;
    repeated DataPoint pt = 2;

    message DataPoint {
        required int id = 1;
        required int value = 2;
        optional UnitType theunit = 3;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后有类似创建/处理消息的东西:

// construct
DataPack pack;
pack->set_id(123);
DataPack::DataPoint pt = pack.add_point();
pt->set_id(456);
pt->set_value(789);
pt->set_unit(DataPack::UnitType::KmPerHour);

// read values
DataPack::UnitType theunit = …
Run Code Online (Sandbox Code Playgroud)

dictionary protocol-buffers

5
推荐指数
2
解决办法
2888
查看次数

标签 统计

dictionary ×1

protocol-buffers ×1