一个线程安全的、基于unordered_map的原子映射类。 更多...
#include <AtomicMap.h>
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的访问的可变互斥锁。 | |
一个线程安全的、基于unordered_map的原子映射类。
这个模板类提供了一个线程安全的映射,使用mutex来确保对内部unordered_map的并发访问是安全的。
Key | 映射的键类型。 |
Value | 映射的值类型。 |
在文件 AtomicMap.h 第 28 行定义.
|
inline |
默认构造函数。
在文件 AtomicMap.h 第 46 行定义.
|
inline |
添加或更新键值对。
如果键已存在,则更新其对应的值;如果键不存在,则插入新的键值对。
entry | 要添加或更新的键值对。 |
在文件 AtomicMap.h 第 54 行定义.
引用了 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().
|
inline |
检查映射是否包含指定的键。
key | 要检查的键。 |
在文件 AtomicMap.h 第 70 行定义.
引用了 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().
|
inline |
获取指定键的值。
key | 要获取值的键。 |
在文件 AtomicMap.h 第 81 行定义.
引用了 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().
|
inline |
从映射中移除指定的键及其对应的值。
key | 要移除的键。 |
在文件 AtomicMap.h 第 91 行定义.
引用了 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().
|
private |
|
mutableprivate |
用于同步对map的访问的可变互斥锁。
这个互斥锁用于保护对内部unordered_map的并发访问,确保线程安全。
在文件 AtomicMap.h 第 36 行定义.
被这些函数引用 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().