CARLA
 
载入中...
搜索中...
未找到
Public 成员函数 | Private 属性 | 所有成员列表
carla::traffic_manager::AtomicMap< Key, Value > 模板类 参考

一个线程安全的、基于unordered_map的原子映射类。 更多...

#include <AtomicMap.h>

+ 类 carla::traffic_manager::AtomicMap< Key, Value > 继承关系图:
+ carla::traffic_manager::AtomicMap< Key, Value > 的协作图:

Public 成员函数

void AddEntry (const std::pair< Key, Value > &entry)
 添加或更新键值对。
 
 AtomicMap ()
 默认构造函数。
 
bool Contains (const Key &key) const
 检查映射是否包含指定的键。
 
const Value & GetValue (const Key &key) const
 获取指定键的值。
 
void RemoveEntry (const Key &key)
 从映射中移除指定的键及其对应的值。
 

Private 属性

std::unordered_map< Key, Value > map
 存储键值对的无序映射。
 
std::mutex map_mutex
 用于同步对map的访问的可变互斥锁。
 

详细描述

template<typename Key, typename Value>
class carla::traffic_manager::AtomicMap< Key, Value >

一个线程安全的、基于unordered_map的原子映射类。

这个模板类提供了一个线程安全的映射,使用mutex来确保对内部unordered_map的并发访问是安全的。

模板参数
Key映射的键类型。
Value映射的值类型。

在文件 AtomicMap.h28 行定义.

构造及析构函数说明

◆ AtomicMap()

template<typename Key , typename Value >
carla::traffic_manager::AtomicMap< Key, Value >::AtomicMap ( )
inline

默认构造函数。

在文件 AtomicMap.h46 行定义.

成员函数说明

◆ AddEntry()

template<typename Key , typename Value >
void carla::traffic_manager::AtomicMap< Key, Value >::AddEntry ( const std::pair< Key, Value > & entry)
inline

添加或更新键值对。

如果键已存在,则更新其对应的值;如果键不存在,则插入新的键值对。

参数
entry要添加或更新的键值对。

在文件 AtomicMap.h54 行定义.

引用了 carla::traffic_manager::AtomicMap< Key, Value >::map , 以及 carla::traffic_manager::AtomicMap< Key, Value >::map_mutex.

被这些函数引用 carla::traffic_manager::Parameters::SetAutoLaneChange(), carla::traffic_manager::Parameters::SetCustomPath(), carla::traffic_manager::Parameters::SetDesiredSpeed(), carla::traffic_manager::Parameters::SetDistanceToLeadingVehicle(), carla::traffic_manager::Parameters::SetImportedRoute(), carla::traffic_manager::Parameters::SetKeepRightPercentage(), carla::traffic_manager::Parameters::SetLaneOffset(), carla::traffic_manager::Parameters::SetPercentageIgnoreVehicles(), carla::traffic_manager::Parameters::SetPercentageIgnoreWalkers(), carla::traffic_manager::Parameters::SetPercentageRunningLight(), carla::traffic_manager::Parameters::SetPercentageRunningSign(), carla::traffic_manager::Parameters::SetPercentageSpeedDifference(), carla::traffic_manager::Parameters::SetRandomLeftLaneChangePercentage(), carla::traffic_manager::Parameters::SetRandomRightLaneChangePercentage(), carla::traffic_manager::Parameters::SetUpdateVehicleLights(), carla::traffic_manager::Parameters::UpdateImportedRoute() , 以及 carla::traffic_manager::Parameters::UpdateUploadPath().

+ 这是这个函数的调用关系图:

◆ Contains()

template<typename Key , typename Value >
bool carla::traffic_manager::AtomicMap< Key, Value >::Contains ( const Key & key) const
inline

检查映射是否包含指定的键。

参数
key要检查的键。
返回
如果映射包含指定的键,则返回true;否则返回false。

在文件 AtomicMap.h70 行定义.

引用了 carla::traffic_manager::AtomicMap< Key, Value >::map , 以及 carla::traffic_manager::AtomicMap< Key, Value >::map_mutex.

被这些函数引用 carla::traffic_manager::Parameters::GetAutoLaneChange(), carla::traffic_manager::Parameters::GetCustomPath(), carla::traffic_manager::Parameters::GetDistanceToLeadingVehicle(), carla::traffic_manager::Parameters::GetImportedRoute(), carla::traffic_manager::Parameters::GetKeepRightPercentage(), carla::traffic_manager::Parameters::GetLaneOffset(), carla::traffic_manager::Parameters::GetPercentageIgnoreVehicles(), carla::traffic_manager::Parameters::GetPercentageIgnoreWalkers(), carla::traffic_manager::Parameters::GetPercentageRunningLight(), carla::traffic_manager::Parameters::GetPercentageRunningSign(), carla::traffic_manager::Parameters::GetRandomLeftLaneChangePercentage(), carla::traffic_manager::Parameters::GetRandomRightLaneChangePercentage(), carla::traffic_manager::Parameters::GetUpdateVehicleLights(), carla::traffic_manager::Parameters::GetUploadPath(), carla::traffic_manager::Parameters::GetUploadRoute(), carla::traffic_manager::Parameters::GetVehicleTargetVelocity(), carla::traffic_manager::Parameters::SetDesiredSpeed() , 以及 carla::traffic_manager::Parameters::SetPercentageSpeedDifference().

+ 这是这个函数的调用关系图:

◆ GetValue()

template<typename Key , typename Value >
const Value & carla::traffic_manager::AtomicMap< Key, Value >::GetValue ( const Key & key) const
inline

◆ RemoveEntry()

template<typename Key , typename Value >
void carla::traffic_manager::AtomicMap< Key, Value >::RemoveEntry ( const Key & key)
inline

从映射中移除指定的键及其对应的值。

参数
key要移除的键。

在文件 AtomicMap.h91 行定义.

引用了 carla::traffic_manager::AtomicMap< Key, Value >::map , 以及 carla::traffic_manager::AtomicMap< Key, Value >::map_mutex.

被这些函数引用 carla::traffic_manager::Parameters::RemoveImportedRoute(), carla::traffic_manager::Parameters::RemoveUploadPath(), carla::traffic_manager::Parameters::SetDesiredSpeed(), carla::traffic_manager::Parameters::SetPercentageSpeedDifference(), carla::traffic_manager::Parameters::UpdateImportedRoute() , 以及 carla::traffic_manager::Parameters::UpdateUploadPath().

+ 这是这个函数的调用关系图:

类成员变量说明

◆ map

template<typename Key , typename Value >
std::unordered_map<Key, Value> carla::traffic_manager::AtomicMap< Key, Value >::map
private

◆ map_mutex

template<typename Key , typename Value >
std::mutex carla::traffic_manager::AtomicMap< Key, Value >::map_mutex
mutableprivate

用于同步对map的访问的可变互斥锁。

这个互斥锁用于保护对内部unordered_map的并发访问,确保线程安全。

在文件 AtomicMap.h36 行定义.

被这些函数引用 carla::traffic_manager::AtomicMap< Key, Value >::AddEntry(), carla::traffic_manager::AtomicMap< Key, Value >::Contains(), carla::traffic_manager::AtomicMap< Key, Value >::GetValue() , 以及 carla::traffic_manager::AtomicMap< Key, Value >::RemoveEntry().


该类的文档由以下文件生成: