CARLA
 
载入中...
搜索中...
未找到
CarlaLineInvasion.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 CarlaLineInvasion.h
17 * This header file contains the declaration of the described types in the IDL file.
18 *
19 * This file was generated by the tool gen.
20 */
21
22#ifndef _FAST_DDS_GENERATED_CARLA_MSGS_MSG_CARLALINEINVASION_H_
23#define _FAST_DDS_GENERATED_CARLA_MSGS_MSG_CARLALINEINVASION_H_
24
25#include "Header.h"
26#include <fastrtps/utils/fixed_size_string.hpp>
27#include <stdint.h>
28#include <array>
29#include <string>
30#include <vector>
31#include <map>
32#include <bitset>
33
34// 根据_WIN32宏定义来处理动态链接库相关的导出导入声明(Windows平台下)
35#if defined(_WIN32)
36#if defined(EPROSIMA_USER_DLL_EXPORT)
37#define eProsima_user_DllExport __declspec( dllexport )
38// 如果定义了EPROSIMA_USER_DLL_EXPORT,表示当前是作为动态链接库导出符号,使用__declspec(dllexport)声明
39#else
40#define eProsima_user_DllExport
41// 否则不做额外处理,通常是在使用该动态链接库时(导入符号情况)
42#endif // EPROSIMA_USER_DLL_EXPORT
43#else
44#define eProsima_user_DllExport
45// 非Windows平台下,暂不做特殊处理,这里只是定义一个空的宏替换,方便代码跨平台编写时统一语法结构
46#endif // _WIN32
47
48// 同样根据_WIN32和相关宏定义来处理CarlaLineInvasion相关的动态链接库API声明(Windows平台下)
49#if defined(_WIN32)
50#if defined(EPROSIMA_USER_DLL_EXPORT)
51#if defined(CarlaLineInvasion_SOURCE)
52#define CarlaLineInvasion_DllAPI __declspec( dllexport )
53// 如果定义了CarlaLineInvasion_SOURCE,说明是在定义该类所在的源文件中,作为导出接口使用__declspec(dllexport)
54#else
55#define CarlaLineInvasion_DllAPI __declspec( dllimport )
56// 否则就是在使用该类的其他地方,作为导入接口使用__declspec(dllimport)
57#endif // CarlaLineInvasion_SOURCE
58#else
59#define CarlaLineInvasion_DllAPI
60// 未定义相关导出宏时,不做特殊处理,类似前面的情况,便于跨平台代码结构统一
61#endif // EPROSIMA_USER_DLL_EXPORT
62#else
63#define CarlaLineInvasion_DllAPI
64// 非Windows平台下,同样暂不做特殊处理
65#endif // _WIN32
66
67// eprosima命名空间,可能包含了一些和该库相关的基础功能等,这里先声明fastcdr命名空间下的Cdr类,后续应该会用于序列化反序列化操作相关
68namespace eprosima {
69namespace fastcdr {
70class Cdr;
71} // namespace fastcdr
72} // namespace eprosima
73
74namespace carla_msgs {
75 namespace msg {
76 // 定义车道标线类型的枚举值,分别表示其他类型、虚线、实线
77 const int32_t LANE_MARKING_OTHER = 0;
78 const int32_t LANE_MARKING_BROKEN = 1;
79 const int32_t LANE_MARKING_SOLID = 2;
80
81 /*!
82 * @brief 此类表示用户在IDL文件中定义的LaneInvasionEvent结构。
83 * @ingroup CARLALINEINVASION
84 * 这个类表示在IDL文件中用户定义的LaneInvasionEvent结构,通常用于处理车道入侵相关的消息事件,是整个消息结构体的主体类定义
85 */
87 {
88 public:
89 /*!
90 * @brief 默认构造函数。
91 * 默认构造函数,用于创建一个默认初始化状态的LaneInvasionEvent对象
92 */
94
95 /*!
96 * @brief 默认析构函数。
97 * 默认析构函数,用于释放该对象占用的资源等清理操作
98 */
100
101 /*!
102 * @brief 拷贝构造函数。
103 * @param x 要被拷贝的carla_msgs::msg::LaneInvasionEvent对象的引用。
104 * 拷贝构造函数,用于根据已有的LaneInvasionEvent对象创建一个新的副本,参数x是要拷贝的对象引用
105 */
107 const LaneInvasionEvent& x);
108
109 /*!
110 * @brief 移动构造函数。
111 * @param x 要被拷贝的carla_msgs::msg::LaneInvasionEvent对象的引用。
112 * 移动构造函数,用于将一个LaneInvasionEvent对象的资源所有权转移给新创建的对象,参数x是要移动的对象引用,相比拷贝构造更高效,适用于临时对象等情况
113 */
115 LaneInvasionEvent&& x) noexcept;
116
117 /*!
118 * @brief 拷贝赋值运算符重载。
119 * @param x 要被拷贝的carla_msgs::msg::LaneInvasionEvent对象的引用。
120 * 拷贝赋值运算符重载,用于将一个LaneInvasionEvent对象的值拷贝给另一个已存在的对象,参数x是要拷贝的对象引用
121 */
123 const LaneInvasionEvent& x);
124
125 /*!
126 * @brief 移动赋值运算符重载。
127 * @param x 要被拷贝的carla_msgs::msg::LaneInvasionEvent对象的引用。
128 * 移动赋值运算符重载,用于将一个LaneInvasionEvent对象的资源所有权转移给另一个已存在的对象,参数x是要移动的对象引用
129 */
131 LaneInvasionEvent&& x) noexcept;
132
133 /*!
134 * @brief 相等比较运算符重载。
135 * @param x 用于比较的carla_msgs::msg::LaneInvasionEvent对象。
136 * 相等比较运算符重载,用于比较两个LaneInvasionEvent对象是否相等,参数x是要比较的对象,返回布尔值表示是否相等
137 */
139 const LaneInvasionEvent& x) const;
140
141 /*!
142 * @brief 不等比较运算符重载。
143 * @param x 用于比较的carla_msgs::msg::LaneInvasionEvent对象。
144 * 不等比较运算符重载,用于比较两个LaneInvasionEvent对象是否不相等,参数x是要比较的对象,返回布尔值表示是否不相等
145 */
147 const LaneInvasionEvent& x) const;
148
149 /*!
150 * @brief 此函数将成员header中的值进行拷贝。
151 * @param _header 要拷贝到成员header中的新值。
152 * 该函数用于将传入的std_msgs::msg::Header类型的对象值拷贝到本类的成员变量m_header中,参数_header是要拷贝的新值
153 */
155 const std_msgs::msg::Header& _header);
156
157 /*!
158 * @brief 此函数将成员header中的值进行移动(转移资源所有权)。
159 * @param _header 要移动到成员header中的新值。
160 * 该函数用于将传入的std_msgs::msg::Header类型的对象值移动(转移资源所有权)到本类的成员变量m_header中,参数_header是要移动的新值
161 */
163 std_msgs::msg::Header&& _header);
164
165 /*!
166 * @brief 此函数返回成员header的常量引用。
167 * @return 成员header的常量引用。
168 * 该函数返回成员变量m_header的常量引用,用于外部以只读方式访问该成员变量,不会修改其值
169 */
170 eProsima_user_DllExport const std_msgs::msg::Header& header() const;
171
172 /*!
173 * @brief 此函数返回成员header的引用。
174 * @return 成员header的引用。
175 * 该函数返回成员变量m_header的普通引用,外部可以通过该引用修改成员变量的值
176 */
177 eProsima_user_DllExport std_msgs::msg::Header& header();
178
179 /*!
180 * @brief 此函数将成员crossed_lane_markings中的值进行拷贝。
181 * @param _crossed_lane_markings 要拷贝到成员crossed_lane_markings中的新值。
182 * 该函数用于将传入的std::vector<int32_t>类型的对象值拷贝到本类的成员变量m_crossed_lane_markings中,参数_crossed_lane_markings是要拷贝的新值
183 */
185 const std::vector<int32_t>& _crossed_lane_markings);
186
187 /*!
188 * @brief 此函数将成员crossed_lane_markings中的值进行移动(转移资源所有权)。
189 * @param _crossed_lane_markings 要移动到成员crossed_lane_markings中的新值。
190 * 该函数用于将传入的std::vector<int32_t>类型的对象值移动(转移资源所有权)到本类的成员变量m_crossed_lane_markings中,参数_crossed_lane_markings是要移动的新值
191 */
193 std::vector<int32_t>&& _crossed_lane_markings);
194
195 /*!
196 * @brief 此函数返回成员crossed_lane_markings的常量引用。
197 * @return 成员crossed_lane_markings的常量引用。
198 * 该函数返回成员变量m_crossed_lane_markings的常量引用,用于外部以只读方式访问该成员变量,不会修改其值
199 */
200 eProsima_user_DllExport const std::vector<int32_t>& crossed_lane_markings() const;
201
202 /*!
203 * @brief 此函数返回成员crossed_lane_markings的引用。
204 * @return 成员crossed_lane_markings的引用。
205 * 该函数返回成员变量m_crossed_lane_markings的普通引用,外部可以通过该引用修改成员变量的值
206 */
207 eProsima_user_DllExport std::vector<int32_t>& crossed_lane_markings();
208
209 /*!
210 * @brief 此函数根据缓冲区对齐方式返回对象的最大序列化大小。
211 * @param current_alignment 缓冲区对齐方式。
212 * @return 最大序列化大小。
213 * 该静态函数用于根据给定的缓冲区对齐方式(参数current_alignment),计算并返回该对象最大的序列化尺寸,常用于确定存储该对象序列化数据所需的缓冲区大小等操作
214 */
216 size_t current_alignment = 0);
217
218 /*!
219 * @brief 此函数根据缓冲区对齐方式返回数据的序列化大小。
220 * @param data 要计算其序列化大小的数据。
221 * @param current_alignment 缓冲区对齐方式。
222 * @return 序列化大小。
223 * 该静态函数用于根据给定的缓冲区对齐方式(参数current_alignment),计算并返回指定数据(参数data)的序列化尺寸,用于精确知道某个具体对象序列化后的数据大小情况
224 */
227 size_t current_alignment = 0);
228
229 /*!
230 * @brief 此函数使用CDR序列化方式对对象进行序列化。
231 * @param cdr CDR序列化对象。
232 * 该函数用于使用CDR序列化方式将本对象进行序列化,参数cdr是用于执行序列化操作的对象,通常会按照特定的格式将对象的数据转换为字节流等形式以便存储或传输
233 */
235 eprosima::fastcdr::Cdr& cdr) const;
236
237 /*!
238 * @brief 此函数使用CDR序列化方式对对象进行反序列化。
239 * @param cdr CDR序列化对象。
240 * 该函数用于使用CDR反序列化方式将接收到的字节流等数据还原为该对象,参数cdr是包含了序列化数据以及相关操作的对象,通过它来解析数据并填充到本对象的各个成员变量中
241 */
243 eprosima::fastcdr::Cdr& cdr);
244
245 /*!
246 * @brief 此函数根据缓冲区对齐方式返回对象的键(Key)的最大序列化大小。
247 * @param current_alignment 缓冲区对齐方式。
248 * @return 最大序列化大小。
249 * 该静态函数用于根据给定的缓冲区对齐方式(参数current_alignment),计算并返回该对象的键(Key,如果有的话)最大的序列化尺寸,常用于在一些基于键值查找等相关操作场景下确定存储键序列化数据所需的缓冲区大小等
250 */
252 size_t current_alignment = 0);
253
254 /*!
255 * @brief 此函数告知是否已为该类型定义了键(Key)。
256 * 该静态函数用于判断该类型是否已经定义了键(Key),返回布尔值表示是否已定义
257 */
259
260 /*!
261 * @brief 此函数使用CDR序列化方式对对象的键(Key)成员进行序列化。
262 * @param cdr CDR序列化对象。
263 * 该函数用于使用CDR序列化方式将本对象的键(Key,如果有的话)相关成员进行序列化,参数cdr是用于执行序列化操作的对象
264 */
266 eprosima::fastcdr::Cdr& cdr) const;
267
268 private:
269 std_msgs::msg::Header m_header;
270 // 用于存储车辆越过的车道标线类型的向量,每个元素是前面定义的车道标线类型枚举值之一,表示对应的标线被越过了
271 std::vector<int32_t> m_crossed_lane_markings;
272 };
273 } // namespace msg
274} // namespace carla_msgs
275
276#endif
#define eProsima_user_DllExport
Definition CameraInfo.h:44
此类表示用户在IDL文件中定义的LaneInvasionEvent结构。这个类表示在IDL文件中用户定义的LaneInvasionEvent结构,通常用于处理车道入侵相关的消息事件,是整个消息结构体的主...
eProsima_user_DllExport void serialize(eprosima::fastcdr::Cdr &cdr) const
此函数使用CDR序列化方式对对象进行序列化。
eProsima_user_DllExport const std::vector< int32_t > & crossed_lane_markings() const
此函数返回成员crossed_lane_markings的常量引用。
eProsima_user_DllExport LaneInvasionEvent()
默认构造函数。 默认构造函数,用于创建一个默认初始化状态的LaneInvasionEvent对象
eProsima_user_DllExport ~LaneInvasionEvent()
默认析构函数。 默认析构函数,用于释放该对象占用的资源等清理操作
eProsima_user_DllExport bool operator==(const LaneInvasionEvent &x) const
相等比较运算符重载。
eProsima_user_DllExport void deserialize(eprosima::fastcdr::Cdr &cdr)
此函数使用CDR序列化方式对对象进行反序列化。
static eProsima_user_DllExport size_t getCdrSerializedSize(const carla_msgs::msg::LaneInvasionEvent &data, size_t current_alignment=0)
此函数根据缓冲区对齐方式返回数据的序列化大小。
eProsima_user_DllExport bool operator!=(const LaneInvasionEvent &x) const
不等比较运算符重载。
static eProsima_user_DllExport size_t getMaxCdrSerializedSize(size_t current_alignment=0)
此函数根据缓冲区对齐方式返回对象的最大序列化大小。
eProsima_user_DllExport LaneInvasionEvent & operator=(const LaneInvasionEvent &x)
拷贝赋值运算符重载。
static eProsima_user_DllExport size_t getKeyMaxCdrSerializedSize(size_t current_alignment=0)
此函数根据缓冲区对齐方式返回对象的键(Key)的最大序列化大小。
eProsima_user_DllExport const std_msgs::msg::Header & header() const
此函数返回成员header的常量引用。
eProsima_user_DllExport void serializeKey(eprosima::fastcdr::Cdr &cdr) const
此函数使用CDR序列化方式对对象的键(Key)成员进行序列化。
std::vector< int32_t > m_crossed_lane_markings
static eProsima_user_DllExport bool isKeyDefined()
此函数告知是否已为该类型定义了键(Key)。 该静态函数用于判断该类型是否已经定义了键(Key),返回布尔值表示是否已定义
const int32_t LANE_MARKING_OTHER
const int32_t LANE_MARKING_SOLID
const int32_t LANE_MARKING_BROKEN