pragma keylist 关键字有什么作用?
What does pragma keylist keyword do?
在阅读各种物联网消息传递协议时,我遇到了一个定义如下的结构:
enum TempScale {
CELSIUM,
KELVIN,
FARENHEIT
};
struct TempSensorType {
short id;
float temp;
float hum;
TempScale scale;
};
#pragma keylist TempSensorType id
我的问题是:这个 #pragma keylist 关键字有什么作用,我在哪里可以找到一些关于使用 #pragma 预处理器指令的文档(我相信这是这样的指令..)。
谢谢。
您正在查看的#pragma 是用于在 OMG-DDS(实时系统数据分发服务)类型结构中定义键值的 PrismTech 方法。在这种情况下,它将短 'id' 定义为键值。可比较的 RTI 定义是
struct TempSensorType {
short id; //@key
float temp;
float hum;
TempScale scale;
}
对于供应商实现之间的互操作性,您可以安全地做到
struct TempSensorType {
short id; //@key
float temp;
float hum;
TempScale scale;
}
#pragma keylist TempSensorType id
因为 RTI 编译器忽略编译指示,而 PT 编译器忽略 //@key。
这将随着可扩展类型规范的未来版本而改变,它将定义所有供应商支持的标准方法。
请注意,如果您正在查看 IoT 消息传递协议的通用列表,"key" 值的概念可能不存在于您正在查看的其他消息传递协议中。
请注意,通过 pragma 的显式键列表规范允许定义键中的顺序 - 根据用例 - 可能对维护(filling/reading/querying/filtering)'multi-dimensional-storage' 用于数据读取器(and/or 持久性服务)
请注意,对于符合最近采用的 OMG DDS-XTYPES 规范 (http://www.omg.org/spec/DDS-XTypes/) 的 DDS 实现,指定密钥的标准可移植方式是:
struct SensorType {
@key short id;
float temp;
float hum;
TempScale scale;
}
或者(为了避免破坏不理解 IDL 注释的 IDL 编译器):
struct SensorType {
short id; //@key
float temp;
float hum;
TempScale scale;
}
在阅读各种物联网消息传递协议时,我遇到了一个定义如下的结构:
enum TempScale {
CELSIUM,
KELVIN,
FARENHEIT
};
struct TempSensorType {
short id;
float temp;
float hum;
TempScale scale;
};
#pragma keylist TempSensorType id
我的问题是:这个 #pragma keylist 关键字有什么作用,我在哪里可以找到一些关于使用 #pragma 预处理器指令的文档(我相信这是这样的指令..)。
谢谢。
您正在查看的#pragma 是用于在 OMG-DDS(实时系统数据分发服务)类型结构中定义键值的 PrismTech 方法。在这种情况下,它将短 'id' 定义为键值。可比较的 RTI 定义是
struct TempSensorType {
short id; //@key
float temp;
float hum;
TempScale scale;
}
对于供应商实现之间的互操作性,您可以安全地做到
struct TempSensorType {
short id; //@key
float temp;
float hum;
TempScale scale;
}
#pragma keylist TempSensorType id
因为 RTI 编译器忽略编译指示,而 PT 编译器忽略 //@key。
这将随着可扩展类型规范的未来版本而改变,它将定义所有供应商支持的标准方法。
请注意,如果您正在查看 IoT 消息传递协议的通用列表,"key" 值的概念可能不存在于您正在查看的其他消息传递协议中。
请注意,通过 pragma 的显式键列表规范允许定义键中的顺序 - 根据用例 - 可能对维护(filling/reading/querying/filtering)'multi-dimensional-storage' 用于数据读取器(and/or 持久性服务)
请注意,对于符合最近采用的 OMG DDS-XTYPES 规范 (http://www.omg.org/spec/DDS-XTypes/) 的 DDS 实现,指定密钥的标准可移植方式是:
struct SensorType {
@key short id;
float temp;
float hum;
TempScale scale;
}
或者(为了避免破坏不理解 IDL 注释的 IDL 编译器):
struct SensorType {
short id; //@key
float temp;
float hum;
TempScale scale;
}