CARLA
载入中...
搜索中...
未找到
LibCarla
source
carla
ros2
publishers
CarlaMapSensorPublisher.h
浏览该文件的文档.
1
// Copyright (c) 2022 Computer Vision Center (CVC) at the Universitat Autonoma de Barcelona (UAB).
2
// This work is licensed under the terms of the MIT license.
3
// For a copy, see <https://opensource.org/licenses/MIT>.
4
// 这是一个预处理指令,用于确保头文件只被编译一次,避免重复包含导致的编译错误
5
#pragma once
6
// 定义 C++11 ABI(应用二进制接口)相关设置为0,通常用于控制库的链接和二进制兼容性等方面,
7
// 例如影响不同编译器版本或者不同编译选项下库的交互方式
8
#define _GLIBCXX_USE_CXX11_ABI 0
9
// 引入标准库中的智能指针头文件,用于管理动态分配的对象,如这里的CarlaMapSensorPublisherImpl对象
10
#include <memory>
11
12
#include "
CarlaPublisher.h
"
13
14
namespace
carla
{
15
namespace
ros2
{
16
// 前置声明CarlaMapSensorPublisherImpl结构体,告诉编译器存在这样一个结构体类型,
17
// 但具体的结构体定义在后面或者其他地方给出,这样可以解决编译顺序依赖的问题,
18
// 例如在类中使用该结构体类型的指针时,编译器知道这是一个合法的类型即可
19
struct
CarlaMapSensorPublisherImpl;
20
// CarlaMapSensorPublisher类定义,继承自CarlaPublisher类,
21
// 可能用于发布地图传感器相关的数据,实现特定的发布功能和遵循相关的发布逻辑
22
class
CarlaMapSensorPublisher
:
public
CarlaPublisher
{
23
public
:
24
// 构造函数,用于创建CarlaMapSensorPublisher对象
25
// 参数ros_name用于指定该发布者在ROS系统中的名称,默认为空字符串,
26
// 参数parent用于指定父节点名称,默认为"", 可以用于构建层次化的名称结构等
27
CarlaMapSensorPublisher
(
const
char
* ros_name =
""
,
const
char
*
parent
=
""
);
28
// 析构函数,用于在对象销毁时进行资源清理工作,比如释放动态分配的内存等相关操作
29
~CarlaMapSensorPublisher
();
30
// 拷贝构造函数,用于通过已有的CarlaMapSensorPublisher对象创建一个新的相同的对象,
31
// 进行深拷贝或者浅拷贝相关的操作,确保新对象的状态和原对象一致(取决于具体实现)
32
CarlaMapSensorPublisher
(
const
CarlaMapSensorPublisher
&);
33
// 拷贝构造函数,用于通过已有的CarlaMapSensorPublisher对象创建一个新的相同的对象,
34
// 进行深拷贝或者浅拷贝相关的操作,确保新对象的状态和原对象一致(取决于具体实现)
35
CarlaMapSensorPublisher
&
operator=
(
const
CarlaMapSensorPublisher
&);
36
// 移动构造函数,通过将已有对象的资源所有权转移给新对象来高效地创建新对象,
37
// 避免不必要的资源复制开销,常用于涉及动态资源管理的情况
38
CarlaMapSensorPublisher
(
CarlaMapSensorPublisher
&&);
39
CarlaMapSensorPublisher
&
operator=
(
CarlaMapSensorPublisher
&&);
40
41
bool
Init
();
42
bool
Publish
();
43
void
SetData
(
const
char
* data);
44
// 重写基类(CarlaPublisher)中的虚函数type,返回表示该发布者类型的字符串"map sensor",
45
// 可以用于在运行时识别发布者的具体类型等用途
46
const
char
*
type
()
const override
{
return
"map sensor"
; }
47
48
private
:
49
// 使用std::shared_ptr智能指针来管理CarlaMapSensorPublisherImpl类型的对象,
50
// 实现自动的内存管理,避免手动释放内存导致的问题,如内存泄漏等
51
std::shared_ptr<CarlaMapSensorPublisherImpl>
_impl
;
52
};
53
}
54
}
CarlaPublisher.h
carla::ros2::CarlaMapSensorPublisher
Definition
CarlaMapSensorPublisher.h:22
carla::ros2::CarlaMapSensorPublisher::operator=
CarlaMapSensorPublisher & operator=(const CarlaMapSensorPublisher &)
Definition
CarlaMapSensorPublisher.cpp:208
carla::ros2::CarlaMapSensorPublisher::Init
bool Init()
Definition
CarlaMapSensorPublisher.cpp:43
carla::ros2::CarlaMapSensorPublisher::Publish
bool Publish()
Definition
CarlaMapSensorPublisher.cpp:100
carla::ros2::CarlaMapSensorPublisher::SetData
void SetData(const char *data)
Definition
CarlaMapSensorPublisher.cpp:167
carla::ros2::CarlaMapSensorPublisher::type
const char * type() const override
Definition
CarlaMapSensorPublisher.h:46
carla::ros2::CarlaMapSensorPublisher::CarlaMapSensorPublisher
CarlaMapSensorPublisher(const char *ros_name="", const char *parent="")
Definition
CarlaMapSensorPublisher.cpp:172
carla::ros2::CarlaMapSensorPublisher::_impl
std::shared_ptr< CarlaMapSensorPublisherImpl > _impl
Definition
CarlaMapSensorPublisher.h:51
carla::ros2::CarlaMapSensorPublisher::~CarlaMapSensorPublisher
~CarlaMapSensorPublisher()
Definition
CarlaMapSensorPublisher.cpp:180
carla::ros2::CarlaPublisher
Definition
CarlaPublisher.h:13
carla::ros2::CarlaPublisher::parent
const std::string & parent() const
Definition
CarlaPublisher.h:17
carla
CARLA模拟器的主命名空间。
Definition
Carla.cpp:139
ros2
制作者
1.10.0