#include <blocker_manager.h>
|
virtual | ~BlockerManager () |
|
template<typename T > |
bool | Publish (const std::string &channel_name, const typename Blocker< T >::MessagePtr &msg) |
|
template<typename T > |
bool | Publish (const std::string &channel_name, const typename Blocker< T >::MessageType &msg) |
|
template<typename T > |
bool | Subscribe (const std::string &channel_name, size_t capacity, const std::string &callback_id, const typename Blocker< T >::Callback &callback) |
|
template<typename T > |
bool | Unsubscribe (const std::string &channel_name, const std::string &callback_id) |
|
template<typename T > |
std::shared_ptr< Blocker< T > > | GetBlocker (const std::string &channel_name) |
|
template<typename T > |
std::shared_ptr< Blocker< T > > | GetOrCreateBlocker (const BlockerAttr &attr) |
|
void | Observe () |
|
void | Reset () |
|
◆ BlockerMap
◆ ~BlockerManager()
apollo::cyber::blocker::BlockerManager::~BlockerManager |
( |
| ) |
|
|
virtual |
◆ GetBlocker()
template<typename T >
std::shared_ptr< Blocker< T > > apollo::cyber::blocker::BlockerManager::GetBlocker |
( |
const std::string & |
channel_name | ) |
|
在文件 blocker_manager.h 第 123 行定义.
124 {
125 std::shared_ptr<Blocker<T>> blocker = nullptr;
126 {
127 std::lock_guard<std::mutex> lock(blocker_mutex_);
128 auto search = blockers_.find(channel_name);
129 if (search != blockers_.end()) {
130 blocker = std::dynamic_pointer_cast<Blocker<T>>(search->second);
131 }
132 }
133 return blocker;
134}
◆ GetOrCreateBlocker()
template<typename T >
std::shared_ptr< Blocker< T > > apollo::cyber::blocker::BlockerManager::GetOrCreateBlocker |
( |
const BlockerAttr & |
attr | ) |
|
在文件 blocker_manager.h 第 137 行定义.
138 {
139 std::shared_ptr<Blocker<T>> blocker = nullptr;
140 {
141 std::lock_guard<std::mutex> lock(blocker_mutex_);
142 auto search = blockers_.find(attr.channel_name);
143 if (search != blockers_.end()) {
144 blocker = std::dynamic_pointer_cast<Blocker<T>>(search->second);
145 } else {
146 blocker = std::make_shared<Blocker<T>>(attr);
147 blockers_[attr.channel_name] = blocker;
148 }
149 }
150 return blocker;
151}
◆ Instance()
static const std::shared_ptr< BlockerManager > & apollo::cyber::blocker::BlockerManager::Instance |
( |
| ) |
|
|
inlinestatic |
在文件 blocker_manager.h 第 38 行定义.
38 {
39 static auto instance =
40 std::shared_ptr<BlockerManager>(new BlockerManager());
41 return instance;
42 }
◆ Observe()
void apollo::cyber::blocker::BlockerManager::Observe |
( |
| ) |
|
在文件 blocker_manager.cc 第 27 行定义.
27 {
28 std::lock_guard<std::mutex> lock(blocker_mutex_);
29 for (auto& item : blockers_) {
30 item.second->Observe();
31 }
32}
◆ Publish() [1/2]
template<typename T >
bool apollo::cyber::blocker::BlockerManager::Publish |
( |
const std::string & |
channel_name, |
|
|
const typename Blocker< T >::MessagePtr & |
msg |
|
) |
| |
在文件 blocker_manager.h 第 80 行定义.
81 {
82 auto blocker = GetOrCreateBlocker<T>(BlockerAttr(channel_name));
83 if (blocker == nullptr) {
84 return false;
85 }
86 blocker->Publish(msg);
87 return true;
88}
◆ Publish() [2/2]
template<typename T >
bool apollo::cyber::blocker::BlockerManager::Publish |
( |
const std::string & |
channel_name, |
|
|
const typename Blocker< T >::MessageType & |
msg |
|
) |
| |
在文件 blocker_manager.h 第 91 行定义.
92 {
93 auto blocker = GetOrCreateBlocker<T>(BlockerAttr(channel_name));
94 if (blocker == nullptr) {
95 return false;
96 }
97 blocker->Publish(msg);
98 return true;
99}
◆ Reset()
void apollo::cyber::blocker::BlockerManager::Reset |
( |
| ) |
|
在文件 blocker_manager.cc 第 34 行定义.
34 {
35 std::lock_guard<std::mutex> lock(blocker_mutex_);
36 for (auto& item : blockers_) {
37 item.second->Reset();
38 }
39 blockers_.clear();
40}
◆ Subscribe()
template<typename T >
bool apollo::cyber::blocker::BlockerManager::Subscribe |
( |
const std::string & |
channel_name, |
|
|
size_t |
capacity, |
|
|
const std::string & |
callback_id, |
|
|
const typename Blocker< T >::Callback & |
callback |
|
) |
| |
在文件 blocker_manager.h 第 102 行定义.
104 {
105 auto blocker = GetOrCreateBlocker<T>(BlockerAttr(capacity, channel_name));
106 if (blocker == nullptr) {
107 return false;
108 }
109 return blocker->Subscribe(callback_id, callback);
110}
◆ Unsubscribe()
template<typename T >
bool apollo::cyber::blocker::BlockerManager::Unsubscribe |
( |
const std::string & |
channel_name, |
|
|
const std::string & |
callback_id |
|
) |
| |
在文件 blocker_manager.h 第 113 行定义.
114 {
115 auto blocker = GetBlocker<T>(channel_name);
116 if (blocker == nullptr) {
117 return false;
118 }
119 return blocker->Unsubscribe(callback_id);
120}
该类的文档由以下文件生成: