TransportInterface
定义了以下数据成员:
数据成员:transport_kind_
- 数据类型:
int32_t
- 描述: 此成员用于唯一标识所使用的传输类型。
注意事项
transport_kind_
是一个受保护的数据成员,仅供内部使用。它无法通过公共 API 访问或修改。然而,用户在实现自定义传输时,需要为该成员填充一个唯一的常量值,以便在新的实现中进行区分。
当前 Fast DDS 中使用的标识符
Fast DDS 目前使用以下几个预定义的标识符,分别对应不同的传输类型,每个标识符都有其特定的整数值:
标识符 | 值 | 传输类型 |
---|---|---|
LOCATOR_KIND_RESERVED | 0 | 无。保留值仅供内部使用。 |
LOCATOR_KIND_UDPv4 | 1 | 基于 IPv4 的 UDP 传输。 |
LOCATOR_KIND_UDPv6 | 2 | 基于 IPv6 的 UDP 传输。 |
LOCATOR_KIND_TCPv4 | 4 | 基于 IPv4 的 TCP 传输。 |
LOCATOR_KIND_TCPv6 | 8 | 基于 IPv6 的 TCP 传输。 |
LOCATOR_KIND_SHM | 16 | 内存共享(Shared Memory)传输。 |
使用场景
在开发新的自定义传输协议时,您需要:
- 从包含
TransportInterface
的相关基类继承。 - 如果引入了新的传输类型,则为
transport_kind_
指定一个您自己唯一的整数常量,或者重用现有标识符。 - 确保与 Fast DDS 框架的适当集成,以便您的自定义传输能够与其他组件有效通信。
总结
总之,transport_kind_
是 Fast DDS 架构中的重要部分,使其能够有效管理不同的运输协议,同时通过用户定义的运输提供扩展性。每个预定义标识符促进了在基于 Fast DDS 技术构建的分布式系统应用程序中对支持通信方法之间的识别和区分。
内容由零声教学AI助手提供,问题来源于学员提问