CARLA
 
载入中...
搜索中...
未找到
NavSatStatus.cpp
浏览该文件的文档.
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 NavSatStatus.cpp
17 * This source file contains the definition of the described types in the IDL file.
18 *
19 * This file was generated by the tool gen.
20 */
21
22#ifdef _WIN32
23// Remove linker warning LNK4221 on Visual Studio
24namespace {
25char dummy;
26} // namespace
27#endif // _WIN32
28
29#include "NavSatStatus.h"
30#include <fastcdr/Cdr.h>
31
32#include <fastcdr/exceptions/BadParamException.h>
33using namespace eprosima::fastcdr::exception;
34
35#include <utility>
36
37#define sensor_msgs_msg_NavSatStatus_max_cdr_typesize 4ULL;
38#define sensor_msgs_msg_NavSatStatus_max_key_cdr_typesize 0ULL;
39
41{
42 // octet m_status
43 m_status = 0;
44 // unsigned short m_service
45 m_service = 0;
46}
47
51
53 const NavSatStatus& x)
54{
55 // 将传入对象 x 的 m_status 成员复制到当前对象的 m_status 成员中
56 m_status = x.m_status;
57
58 // 将传入对象 x 的 m_service 成员复制到当前对象的 m_service 成员中
59 m_service = x.m_service;
60}
61
62// 定义了NavSatStatus类的移动构造函数,它接收一个右值引用类型的NavSatStatus对象x,并且声明该函数不会抛出异常(noexcept)
63// 移动构造函数用于使用已有的对象资源来初始化新创建的对象,避免不必要的拷贝操作,提高效率
65 NavSatStatus&& x) noexcept
66{
67 m_status = x.m_status;
68// 将传入的右值引用对象x的m_status成员变量的值赋给当前正在构造的对象的m_status成员变量
69 m_service = x.m_service;
70// 将传入的右值引用对象x的m_service成员变量的值赋给当前正在构造的对象的m_service成员变量
71}
72// 定义了NavSatStatus类的拷贝赋值运算符函数,它接收一个常引用类型的NavSatStatus对象x
73// 用于将一个NavSatStatus对象的值复制到另一个已存在的NavSatStatus对象中
75 const NavSatStatus& x)
76{
77 m_status = x.m_status;
78// 将传入的对象x的m_status成员变量的值赋给当前对象的m_status成员变量
79 m_service = x.m_service;
80// 将传入的对象x的m_service成员变量的值赋给当前对象的m_service成员变量
81// 返回当前对象的引用,以支持连续赋值操作,例如 a = b = c这种形式
82 return *this;
83}
84// 定义了NavSatStatus类的移动赋值运算符函数,它接收一个右值引用类型的NavSatStatus对象x,并且声明该函数不会抛出异常(noexcept)
85// 移动赋值运算符用于将右值对象的资源转移到当前对象,避免不必要的拷贝,常用于优化对象赋值操作时的资源管理
87 NavSatStatus&& x) noexcept
88{
89 m_status = x.m_status;
90// 将传入的右值引用对象x的m_status成员变量的值赋给当前对象的m_status成员变量
91 m_service = x.m_service;
92// 将传入的右值引用对象x的m_service成员变量的值赋给当前对象的m_service成员变量
93// 返回当前对象的引用,以支持连续赋值操作
94 return *this;
95}
96// 定义了NavSatStatus类的相等比较运算符函数,它接收一个常引用类型的NavSatStatus对象x
97// 用于比较两个NavSatStatus对象是否相等,返回一个布尔值表示比较结果
99 const NavSatStatus& x) const
100{
101 return (m_status == x.m_status && m_service == x.m_service);
102// 通过比较两个对象的m_status和m_service成员变量是否都相等来判断两个NavSatStatus对象整体是否相等
103}
104// 定义了NavSatStatus类的不等比较运算符函数,它接收一个常引用类型的NavSatStatus对象x
105// 利用相等比较运算符的结果取反来判断两个NavSatStatus对象是否不相等,返回一个布尔值表示比较结果
107 const NavSatStatus& x) const
108{
109 return !(*this == x);
110}
111// 定义了一个函数用于获取NavSatStatus对象在CDR(Common Data Representation,一种数据序列化格式)序列化时的最大可能大小
112// 参数current_alignment表示当前的对齐字节数,不过在这里先将其转换为void类型,表示当前函数暂不使用这个参数
114 size_t current_alignment)
115{
116 static_cast<void>(current_alignment);
118// 返回NavSatStatus对象在CDR序列化时的固定最大类型大小,具体值应该由sensor_msgs_msg_NavSatStatus_max_cdr_typesize表示(可能是预定义的常量等)
119}
120// 定义了一个函数用于获取给定的NavSatStatus对象在CDR序列化时实际占用的大小
121// 参数data表示要进行序列化大小计算的NavSatStatus对象,current_alignment表示当前的对齐字节数
124 size_t current_alignment)
125{
126 (void)data;
127// 将传入的data参数转换为void类型,表示暂时不使用它(可能后续会修改此处逻辑来真正使用它进行计算等)
128 // 记录初始的对齐字节数,后续用于计算实际增加的序列化大小
130 current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);
131// 先增加1字节(可能是某种头部或标识信息等),然后根据当前对齐字节数对增加后的位置进行对齐调整(保证符合CDR格式要求的对齐方式)
132 current_alignment += 2 + eprosima::fastcdr::Cdr::alignment(current_alignment, 2);
133 // 再增加2字节(可能是另一部分数据等),同样进行对齐调整
134
135// 返回计算出的序列化后相对于初始对齐位置增加的字节数,即实际序列化占用的大小
137}
138// 定义了一个函数用于将NavSatStatus对象进行CDR序列化,将对象的数据按照CDR格式写入到给定的Cdr对象scdr中
140 eprosima::fastcdr::Cdr& scdr) const
141{
142 scdr << m_status;
143// 使用CDR的输出流操作符<<将当前对象的m_status成员变量的值写入到Cdr对象scdr中,按照CDR格式进行序列化
144 scdr << m_service;
145// 使用CDR的输出流操作符<<将当前对象的m_service成员变量的值写入到Cdr对象scdr中,按照CDR格式进行序列化
146}
147// 定义了一个函数用于将从CDR格式数据中反序列化出NavSatStatus对象,从给定的Cdr对象dcdr中读取数据并赋值给当前对象的成员变量
149 eprosima::fastcdr::Cdr& dcdr)
150{
151 dcdr >> m_status;
152// 使用CDR的输入流操作符>>从Cdr对象dcdr中读取数据,并赋值给当前对象的m_status成员变量,完成反序列化这部分数据的操作
153 dcdr >> m_service;
154// 使用CDR的输入流操作符>>从Cdr对象dcdr中读取数据,并赋值给当前对象的m_service成员变量,完成反序列化这部分数据的操作
155}
156
157/*!
158 * @brief This function sets a value in member status
159 * @param _status New value for member status
160 */
162 uint8_t _status)
163{
164 m_status = _status;
165}
166
167/*!
168 * @brief This function returns the value of member status
169 * @return Value of member status
170 */
172{
173 return m_status;
174}
175
176/*!
177 * @brief This function returns a reference to member status
178 * @return Reference to member status
179 */
181{
182 return m_status;
183}
184
185/*!
186 * @brief This function sets a value in member service
187 * @param _service New value for member service
188 */
190 uint16_t _service)
191{
192 m_service = _service;
193}
194
195/*!
196 * @brief This function returns the value of member service
197 * @return Value of member service
198 */
200{
201 return m_service;
202}
203
204/*!
205 * @brief This function returns a reference to member service
206 * @return Reference to member service
207 */
208// 定义了一个名为service的成员函数,它返回一个对uint16_t类型的成员变量m_service的引用
209// 通过这个函数可以方便地获取和修改NavSatStatus类中的m_service成员变量
211{
212 return m_service;
213// 直接返回NavSatStatus类中的成员变量m_service的引用,使得外部可以通过这个函数间接操作该成员变量
214}
215// 定义了一个函数用于获取NavSatStatus对象的键(Key)在CDR(Common Data Representation,一种数据序列化格式)序列化时的最大可能大小
216// 参数current_alignment表示当前的对齐字节数,不过在这里先将其转换为void类型,表示当前函数暂不使用这个参数
218 size_t current_alignment)
219{
220 static_cast<void>(current_alignment);
222// 返回NavSatStatus对象的键在CDR序列化时的固定最大类型大小,具体值应该由sensor_msgs_msg_NavSatStatus_max_key_cdr_typesize表示(可能是预定义的常量等)
223}
224// 定义了一个函数用于判断NavSatStatus对象的键(Key)是否已经被定义,返回一个布尔值来表示判断结果
226{
227 return false;
228// 这里直接返回false,表示当前默认情况下键(Key)是未被定义的,具体逻辑可能需要根据实际应用场景进行调整
229}
230// 定义了一个函数用于对NavSatStatus对象的键(Key)进行CDR序列化操作,将键相关的数据按照CDR格式写入到给定的Cdr对象scdr中
231// 不过从当前代码来看,传入的scdr参数并没有实际被使用(被强制转换为void类型了),可能后续需要完善此处的序列化逻辑实现真正的数据写入
233 eprosima::fastcdr::Cdr& scdr) const
234{
235 (void) scdr;
236}
#define sensor_msgs_msg_NavSatStatus_max_cdr_typesize
Definition NavSatFix.cpp:38
#define sensor_msgs_msg_NavSatStatus_max_key_cdr_typesize
Definition NavSatFix.cpp:43
return current_alignment initial_alignment
This class represents the structure NavSatStatus defined by the user in the IDL file.
eProsima_user_DllExport NavSatStatus & operator=(const NavSatStatus &x)
Copy assignment.
eProsima_user_DllExport bool operator==(const NavSatStatus &x) const
Comparison operator.
static eProsima_user_DllExport size_t getKeyMaxCdrSerializedSize(size_t current_alignment=0)
This function returns the maximum serialized size of the Key of an object depending on the buffer ali...
eProsima_user_DllExport void serialize(eprosima::fastcdr::Cdr &cdr) const
This function serializes an object using CDR serialization.
static eProsima_user_DllExport size_t getMaxCdrSerializedSize(size_t current_alignment=0)
This function returns the maximum serialized size of an object depending on the buffer alignment.
eProsima_user_DllExport NavSatStatus()
Default constructor.
eProsima_user_DllExport void serializeKey(eprosima::fastcdr::Cdr &cdr) const
This function serializes the key members of an object using CDR serialization.
static eProsima_user_DllExport bool isKeyDefined()
This function tells you if the Key has been defined for this type
eProsima_user_DllExport uint8_t status() const
This function returns the value of member status
eProsima_user_DllExport bool operator!=(const NavSatStatus &x) const
Comparison operator.
eProsima_user_DllExport ~NavSatStatus()
Default destructor.
eProsima_user_DllExport void deserialize(eprosima::fastcdr::Cdr &cdr)
This function deserializes an object using CDR serialization.
eProsima_user_DllExport uint16_t service() const
This function returns the value of member service
static eProsima_user_DllExport size_t getCdrSerializedSize(const sensor_msgs::msg::NavSatStatus &data, size_t current_alignment=0)
This function returns the serialized size of a data depending on the buffer alignment.