内置主题用于发现彼此的参与者及端点信息(BITs),包括四个内置主题及三个特殊主题
域参与者,主题,数据写入器,数据读取器
每个域参与者自动创建内置主题的订阅,如果不打算使用内置主题,构建时删除内置主题支持,可以减少核心DDS库30%的空间。
1. DCPSParticipant Topic
该主题用于发布关于域的域参与者信息
struct ParticipantBuiltinTopicData {
BuiltinTopicKey_t key; // 16个8位组
UserDataQosPolicy user_data;
};
主题名称:"DCPSParticipant"
主题类型:"PARTICIPANT_BUILT_IN_TOPIC_TYPE"
2.DCPSTopic Topic
DCPSTopic主题发布有关域中主题的信息。
struct TopicBuiltinTopicData {
BuiltinTopicKey_t key;
string name;
string type_name;
DurabilityQosPolicy durability;
QosPolicy deadline;
LatencyBudgetQosPolicy latency_budget;
LivelinessQosPolicy liveliness;
ReliabilityQosPolicy reliability;
TransportPriorityQosPolicy transport_priority;
LifespanQosPolicy lifespan;
DestinationOrderQosPolicy destination_order;
HistoryQosPolicy history;
ResourceLimitsQosPolicy resource_limits;
OwnershipQosPolicy ownership;
TopicDataQosPolicy topic_data;
};
每个主题都由唯一键标识,并且是此内置主题内的自己的实例。 上面的成员标识主题的名称,主题类型的名称以及该主题的QoS策略集。
主题名称:"DCPSTopic"
主题类型:"TOPIC_BUILT_IN_TOPIC_TYPE"
3.DCPSPublication Topic
DCPSPublication主题发布有关域中数据编写器的信息。
struct PublicationBuiltinTopicData {
BuiltinTopicKey_t key;
BuiltinTopicKey_t participant_key;
string topic_name;
string type_name;
DurabilityQosPolicy durability;
DeadlineQosPolicy deadline;
LatencyBudgetQosPolicy latency_budget;
LivelinessQosPolicy liveliness;
ReliabilityQosPolicy reliability;
LifespanQosPolicy lifespan;
UserDataQosPolicy user_data;
OwnershipStrengthQosPolicy ownership_strength;
PresentationQosPolicy presentation;
PartitionQosPolicy partition;
TopicDataQosPolicy topic_data;
GroupDataQosPolicy group_data;
};
每个Data Writer在创建时都会分配一个唯一的键,并在此主题中定义自己的实例。 上面的字段标识Data Writer所属的域参与者(通过其关键字),主题名称和类型以及应用于DataWriter的各种QoS策略。
主题名称:"DCPSPublication"
主题类型:"PUBLICATION_BUILT_IN_TOPIC_TYPE"
4.DCPSSubscription Topic
DCPSSubscription主题发布有关域中数据读取器的信息。
struct SubscriptionBuiltinTopicData {
BuiltinTopicKey_t key;
BuiltinTopicKey_t participant_key;
string topic_name;
string type_name;
DurabilityQosPolicy durability;
DeadlineQosPolicy deadline;
LatencyBudgetQosPolicy latency_budget;
LivelinessQosPolicy liveliness;
ReliabilityQosPolicy reliability;
DestinationOrderQosPolicy destination_order;
UserDataQosPolicy user_data;
TimeBasedFilterQosPolicy time_based_filter;
PresentationQosPolicy presentation;
PartitionQosPolicy partition;
TopicDataQosPolicy topic_data;
GroupDataQosPolicy group_data;
};
每个数据读取器在创建时都会分配一个唯一的密钥,并在此主题内定义自己的实例。 上面的字段标识数据读取器所属的域参与者(通过其密钥),主题名称和类型以及应用于数据读取器的各种QoS策略。
主题名称:"DCPSSubscription"
主题类型:"SUBSCRIPTION_BUILT_IN_TOPIC_TYPE"
5.OpenDDSParticipantLocation Topic
内置主题“ OpenDDSParticipantLocation”由DDSI-RTPS discovery 实现发布,以使应用程序可以查看每个远程参与者如何通过网络连接的详细信息。
OpenDDSParticipantLocation的IDL在OpenDDS :: DCPS模块的dds/DdsDcpsCore.idl中。 如果启用了RtpsRelay(15.2)和/或IETF ICE(15.3),则它们的用法将映射在OpenDDSParticipantLocation主题数据中
主题名称:"OpenDDSParticipantLocation"
主题类型:"PARTICIPANT_LOCATION_BUILT_IN_TOPIC_TYPE"
6.OpenDDSConnectionRecord Topic
启用IETF ICE支持时,DDSI-RTPS发现实现和RTPS_UDP传输实现将发布内置主题“ OpenDDSConnectionRecord”。 OpenDDSConnectionRecord的IDL在OpenDDS :: DCPS模块的dds / DdsDcpsCore.idl中。
主题名称:"OpenDDSConnectionRecord"
主题类型:"PARTICIPANT_LOCATION_BUILT_IN_TOPIC_TYPE"
7.OpenDDSInternalThread Topic
当使用DCPSThreadStatusInterval配置OpenDDS时,将发布内置主题“ OpenDDSInternalThread”。 启用后,此内置主题的DataReader将报告由OpenDDS在当前进程中创建和管理的线程的运行状况(响应性)。 OpenDDSInternalThread的IDL在OpenDDS :: DCPS模块中的dds / DdsDcpsCore.idl中。
主题名称:"OpenDDSInternalThread"
主题类型:"INTERNAL_THREAD_BUILT_IN_TOPIC_TYPE"