CARLA
 
载入中...
搜索中...
未找到
CarlaCollisionEventPubSubTypes.h
浏览该文件的文档.
1// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15/*!
16 * @file CarlaCollisionEventPubSubTypes.h
17 * T此头文件包含了序列化相关函数的声明。
18 *
19 * 该文件由 fastcdrgen 工具生成。
20 */
21
22
23#ifndef _FAST_DDS_GENERATED_CARLA_MSGS_MSG_CARLACOLLISIONEVENT_PUBSUBTYPES_H_
24#define _FAST_DDS_GENERATED_CARLA_MSGS_MSG_CARLACOLLISIONEVENT_PUBSUBTYPES_H_
25// 引入 Fast DDS 中用于定义主题数据类型的头文件,为下面自定义的主题数据类型类继承做准备
26#include <fastdds/dds/topic/TopicDataType.hpp>// 引入 Fast RTPS 中用于处理 MD5 相关操作的头文件,可能用于数据校验等功能
27#include <fastrtps/utils/md5.h>
28// 引入相关的自定义消息类型头文件,这些消息类型是构成 CarlaCollisionEvent 消息的组成部分或者与之相关联
29#include "CarlaCollisionEvent.h"
30#include "Vector3PubSubTypes.h"
31#include "HeaderPubSubTypes.h"
32// 如果未定义 GEN_API_VER 或者其值不等于 1,则报错,提示生成的 CarlaCollisionEvent 与当前安装的 Fast DDS 不兼容,需重新生成
33#if !defined(GEN_API_VER) || (GEN_API_VER != 1)
34#error \
35 Generated CarlaCollisionEvent is not compatible with current installed Fast DDS. Please, regenerate it with fastddsgen.
36#endif // GEN_API_VER
37
38namespace carla_msgs
39{
40 namespace msg
41 {
42
43 /*!
44 * @brief 此类代表了用户在 IDL 文件中定义的 CarlaCollisionEvent 类型的主题数据类型(TopicDataType)。
45 * @ingroup CARLACOLLISIONEVENT
46 */
47 class CarlaCollisionEventPubSubType : public eprosima::fastdds::dds::TopicDataType
48 {
49 public:
50// 定义类型别名,方便代码中明确表示该主题数据类型对应的实际消息类型就是 CarlaCollisionEvent
51 typedef CarlaCollisionEvent type;
52 // 默认构造函数,用于创建该主题数据类型对象时进行初始化操作
54// 析构函数,用于在对象生命周期结束时释放相关资源,这里重写了基类的析构函数
56 // 序列化函数,用于将给定的数据(void* 指针指向的实际为 CarlaCollisionEvent 类型的数据)转换为适合网络传输等的序列化格式,并存入 SerializedPayload_t 结构体中,返回序列化是否成功
58 void* data,
59 eprosima::fastrtps::rtps::SerializedPayload_t* payload) override;
60 // 反序列化函数,用于将给定的序列化数据(SerializedPayload_t 结构体表示)还原为 CarlaCollisionEvent 类型的数据(通过 void* 指针指向的内存区域),返回反序列化是否成功
62 eprosima::fastrtps::rtps::SerializedPayload_t* payload,
63 void* data) override;
64 // 返回一个函数对象,该函数对象用于获取给定数据(void* 指针指向的 CarlaCollisionEvent 类型数据)的序列化大小,以方便在一些场景下动态获取数据序列化后的长度信息
65 eProsima_user_DllExport virtual std::function<uint32_t()> getSerializedSizeProvider(
66 void* data) override;
67 // 获取给定数据(void* 指针指向的 CarlaCollisionEvent 类型数据)的键(Key)信息,并存入 InstanceHandle_t 结构体中,可用于在 DDS 系统中进行实例标识、查找等操作,返回获取键信息是否成功
69 void* data,
70 eprosima::fastrtps::rtps::InstanceHandle_t* ihandle,
71 bool force_md5 = false) override;
72// 创建用于存储 CarlaCollisionEvent 类型数据的内存空间,返回指向该内存空间的指针,便于后续向其中填充数据等操作
73 eProsima_user_DllExport virtual void* createData() override;
74 // 释放之前通过 createData 函数创建的用于存储数据的内存空间,传入指向该内存空间的指针(void* 数据)进行资源释放操作
76 void* data) override;
77
78 #ifdef TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED // 如果定义了 TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED 宏,重写 is_bounded 函数,返回该主题数据类型是否有界(通常用于表示数据量是否固定等情况),这里返回 false
79 eProsima_user_DllExport inline bool is_bounded() const override
80 {
81 return false;
82 }
83
84 #endif // TOPIC_DATA_TYPE_API_HAS_IS_BOUNDED
85
86 #ifdef TOPIC_DATA_TYPE_API_HAS_IS_PLAIN // 如果定义了 TOPIC_DATA_TYPE_API_HAS_IS_PLAIN 宏,重写 is_plain 函数,返回该主题数据类型是否是简单类型(可能涉及数据结构复杂度等判断),这里返回 false
87 eProsima_user_DllExport inline bool is_plain() const override
88 {
89 return false;
90 }
91
92 #endif // TOPIC_DATA_TYPE_API_HAS_IS_PLAIN
93
94 #ifdef TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE// 如果定义了 TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE 宏,重写 construct_sample 函数,用于构建一个示例数据(可能用于初始化等场景),这里暂时返回 false,表示未实现具体构建逻辑
95 eProsima_user_DllExport inline bool construct_sample(
96 eProsima_user_DllExport inline bool construct_sample(
97 void* memory) const override
98 {
99 (void)memory;
100 return false;
101 }
102
103 #endif // TOPIC_DATA_TYPE_API_HAS_CONSTRUCT_SAMPLE // MD5 对象,可能用于对数据进行 MD5 校验等相关操作,保证数据的完整性和一致性
104
105 MD5 m_md5;// 指向用于存储键(Key)相关数据的缓冲区指针,用于在获取键信息等操作中临时存储数据
106 unsigned char* m_keyBuffer;
107
108 };
109 }
110}
111
112#endif // _FAST_DDS_GENERATED_CARLA_MSGS_MSG_CARLACOLLISIONEVENT_PUBSUBTYPES_H_
#define eProsima_user_DllExport
Definition CameraInfo.h:44
此类代表了用户在 IDL 文件中定义的 CarlaCollisionEvent 类型的主题数据类型(TopicDataType)。
virtual eProsima_user_DllExport ~CarlaCollisionEventPubSubType() override
virtual eProsima_user_DllExport bool serialize(void *data, eprosima::fastrtps::rtps::SerializedPayload_t *payload) override
virtual eProsima_user_DllExport bool getKey(void *data, eprosima::fastrtps::rtps::InstanceHandle_t *ihandle, bool force_md5=false) override
virtual eProsima_user_DllExport void deleteData(void *data) override
virtual eProsima_user_DllExport void * createData() override
virtual eProsima_user_DllExport bool deserialize(eprosima::fastrtps::rtps::SerializedPayload_t *payload, void *data) override
virtual eProsima_user_DllExport std::function< uint32_t()> getSerializedSizeProvider(void *data) override