本章重点介绍使用 DCPS 将数据从单个发布者进程分发到单个订阅者进程的示例应用程序。
它基于一个简单的信使应用程序,其中一个发布者发布消息,一个订阅者订阅它们。 我们使用默认的 QoS 属性和默认的 TCP/IP 传输。
此示例的完整源代码可在 $DDS_ROOT/DevGuideExamples/DCPS/Messenger/
目录下找到。 其他 DDS 和 DCPS 功能将在后面的章节中讨论。
DDS 使用的每种数据类型都是使用 OMG 接口定义语言 (IDL) 定义的。
OpenDDS 使用 IDL 注释 1 来识别它传输和处理的数据类型。
这些数据类型由 TAO IDL 编译器和 OpenDDS IDL 编译器处理,以生成必要的代码,以使用 OpenDDS 传输这些类型的数据。
这是定义我们的 Message 数据类型的 IDL 文件:
module Messenger {
@topic
struct Message {
string from;
string subject;
@key long subject_id;
string text;
long count;
};
};
@topic
注解标记可以用作主题类型的数据类型。
这必须是结构或联合。 结构或联合可能包含基本类型(短、长、浮点等)、枚举、字符串、序列、