FastDDS 源码剖析:src/dds 源码结构分析与异常类

目录

src/dds 源码分析

源码结构

Exception 分析


src/dds 源码分析

源码结构

FastDDS中的src/cpp/dds目录包含了dds (Data Distribution Service)标准的实现。它分为几个子目录,每个子目录负责DDS实现的特定部分:

  1. core:该目录包含在整个DDS实现中使用的核心类和函数。这包括异常处理(如exception .cpp所示),以及基本类型和实用程序(如types.cpp所示)。
  2. domain:此目录包含DomainParticipant类的实现,它表示DDS域中的参与者。域是一个分布式系统,它允许发布者和订阅者相互通信。
  3. pub:该目录包含DDS发布端的实现,包括Publisher和DataWriter类。这些类用于将数据发布到DDS域。
  4. sub:该目录包含DDS订阅端的实现,包括订阅者和DataReader类。这些类用于订阅DDS域中的数据并接收更新。
  5. topic:此目录包含topic类的实现,它表示DDS域中的主题。主题是一个命名的数据类别,发布者可以向其发布,订阅者可以订阅。

Exception 分析

src/cpp/dds/Exception.cpp 和 include/dds/core/Exception.hpp 文件包含了 FastDDS 中异常处理相关的实现。这些异常类在 FastDDS 中用于处理错误情况,它们都继承自 C++ 标准库中的 std::exception 类。

我们首先看一下 include/dds/core/Exception.hpp 文件。这个头文件包含了多个异常类的声明,它们分别表示不同类型的错误。以下是一些主要的异常类:

  • Error: 表示一般性的错误。
  • UnsupportedError: 表示所请求的特性或操作不受支持。
  • InvalidDataError: 表示提供的数据无效或不合法。
  • OutOfResourcesError: 表示无法分配所需的资源(例如内存)。
  • AlreadyClosedError: 表示试图操作一个已经关闭的实体。
  • ApiError: 表示API调用时发生的错误。
  • PreconditionNotMetError: 表示操作的先决条件未满足。

接下来,我们看一下 src/cpp/dds/Exception.cpp 文件。这个文件包含了异常类的实现,主要是构造函数和析构函数。这些构造函数为每个异常类提供了一个带有描述错误信息的字符串。当异常被抛出时,这个字符串可以被用于显示或记录错误信息。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ym影子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值