35#include "BESReturnManager.h"
42std::once_flag d_euc_init_once;
44BESReturnManager::BESReturnManager() {}
46BESReturnManager::~BESReturnManager()
48 BESReturnManager::Transmitter_iter i;
49 BESTransmitter *t = 0;
50 for (i = _transmitter_list.begin(); i != _transmitter_list.end(); i++) {
56bool BESReturnManager::add_transmitter(
const string &name,
BESTransmitter *transmitter)
58 std::lock_guard<std::recursive_mutex> lock_me(d_cache_lock_mutex);
60 if (find_transmitter(name) == 0) {
61 _transmitter_list[name] = transmitter;
67bool BESReturnManager::del_transmitter(
const string &name)
69 std::lock_guard<std::recursive_mutex> lock_me(d_cache_lock_mutex);
72 BESReturnManager::Transmitter_iter i;
73 i = _transmitter_list.find(name);
74 if (i != _transmitter_list.end()) {
75 BESTransmitter *obj = (*i).second;
76 _transmitter_list.erase(i);
84BESReturnManager::find_transmitter(
const string &name)
86 std::lock_guard<std::recursive_mutex> lock_me(d_cache_lock_mutex);
88 BESReturnManager::Transmitter_citer i;
89 i = _transmitter_list.find(name);
90 if (i != _transmitter_list.end()) {
105 std::lock_guard<std::recursive_mutex> lock_me(d_cache_lock_mutex);
107 strm << BESIndent::LMarg <<
"BESReturnManager::dump - (" << (
void *)
this <<
")" << endl;
109 if (_transmitter_list.size()) {
110 strm << BESIndent::LMarg <<
"registered transmitters:" << endl;
112 BESReturnManager::Transmitter_citer i = _transmitter_list.begin();
113 BESReturnManager::Transmitter_citer ie = _transmitter_list.end();
114 for (; i != ie; i++) {
115 strm << BESIndent::LMarg << (*i).first << endl;
117 (*i).second->dump(strm);
118 BESIndent::UnIndent();
120 BESIndent::UnIndent();
123 strm << BESIndent::LMarg <<
"registered transmitters: none" << endl;
125 BESIndent::UnIndent();
129BESReturnManager::TheManager()
131 std::call_once(d_euc_init_once, BESReturnManager::initialize_instance);
135void BESReturnManager::initialize_instance() {
136 d_instance =
new BESReturnManager;
138 atexit(delete_instance);
142void BESReturnManager::delete_instance() {
ReturnManager holds the list of response object transmitter that knows how to transmit response objec...
virtual void dump(std::ostream &strm) const
dumps information about this object