53template <
class _elementType>
58 typedef std::map<std::string, _elementType *>
MapType;
91 return this->OwnerServices;
119 cmnNamedMap(
const std::string & mapName,
bool takesOwnership =
false):
132 bool takesOwnership =
false):
147 this->OwnerServices = owner.
Services();
170 void GetNames(std::vector<std::string> & placeHolder)
const;
201 return this->Map.size();
205 return this->Map.empty();
213 return this->Map.begin();
217 return this->Map.begin();
221 return this->Map.end();
225 return this->Map.end();
231template <
class _elementType>
235 const typename MapType::const_iterator
iterator =
Map.find(name);
239 << name <<
"\"." << std::endl;
241 CMN_LOG(lod) <<
"cmnNamedMap::AddItem: map \"" <<
MapName <<
"\" already contains an item named \""
242 << name <<
"\"." << std::endl;
250template <
class _elementType>
252 const typename MapType::const_iterator iter =
Map.find(itemName);
253 if (iter !=
Map.end()) {
257 CMN_LOG_CLASS(lod) <<
"GetItem: can't find \"" << itemName <<
"\" in map \"" <<
MapName <<
"\"" << std::endl;
259 CMN_LOG(lod) <<
"cmnNamedMap::GetItem: can't find \"" << itemName <<
"\" in map \"" <<
MapName <<
"\"" << std::endl;
265template <
class _elementType>
267 const typename MapType::const_iterator iter =
Map.find(itemName);
269 return (iter !=
Map.end());
272template <
class _elementType>
276 const typename MapType::iterator
iterator =
Map.find(itemName);
279 CMN_LOG_CLASS(lod) <<
"RemoveItem: can't find \"" << itemName <<
"\" in map \"" <<
MapName <<
"\"" << std::endl;
281 CMN_LOG(lod) <<
"cmnNamedMap::RemoveItem: can't find \"" << itemName <<
"\" in map \"" <<
MapName <<
"\"" << std::endl;
294template <
class _elementType>
297 typename MapType::const_iterator iter =
Map.begin();
298 const typename MapType::const_iterator
end =
Map.end();
302 placeHolder.push_back(iter->first);
307template <
class _elementType>
309 std::vector<std::string> names;
315template <
class _elementType>
318 typename MapType::iterator iter;
319 const typename MapType::iterator
end =
Map.end();
320 for (iter =
Map.begin(); iter !=
end; iter++) {
321 (iter->second->*method)();
326template <
class _elementType>
329 unsigned int counter = 0;
330 typename MapType::const_iterator iter =
Map.begin();
331 const typename MapType::const_iterator
end =
Map.end();
335 outputStream <<
"- " <<
MapName <<
"[" << counter <<
"] (\""
336 << iter->first <<
"\"): " << *(iter->second) << std::endl;
341template <
class _elementType>
343 if (
Map.empty())
return;
347 const typename MapType::iterator
end =
Map.end();
Base class for class services.
Definition cmnClassServicesBase.h:46
Base class for high level objects.
Definition cmnGenericObject.h:53
virtual const cmnClassServicesBase * Services(void) const =0
static StreamBufType * GetMultiplexer(void)
Definition cmnLogger.h:420
cmnLODMultiplexerStreambuf< char > StreamBufType
Definition cmnLogger.h:246
void ToStream(std::ostream &outputStream) const
Definition cmnNamedMap.h:327
_elementType element_type
Definition cmnNamedMap.h:66
MapType::iterator iterator
Definition cmnNamedMap.h:60
bool AddItem(const std::string &name, _elementType *item, cmnLogLevel lod=CMN_LOG_LEVEL_RUN_ERROR)
Definition cmnNamedMap.h:232
iterator begin(void)
Definition cmnNamedMap.h:212
MapType & GetMap(void)
Definition cmnNamedMap.h:185
cmnLogger::StreamBufType * GetLogMultiplexer(void) const
Definition cmnNamedMap.h:94
cmnNamedMap(const std::string &mapName, const cmnGenericObject &owner, bool takesOwnership=false)
Definition cmnNamedMap.h:131
bool RemoveItem(const std::string &name, cmnLogLevel lod=CMN_LOG_LEVEL_RUN_ERROR)
Definition cmnNamedMap.h:273
size_type size(void) const
Definition cmnNamedMap.h:200
std::map< std::string, _elementType * > MapType
Definition cmnNamedMap.h:58
std::vector< std::string > GetNames(void) const
Definition cmnNamedMap.h:308
void(_elementType::*) VoidMethodPointer(void)
Definition cmnNamedMap.h:175
cmnNamedMap(bool takesOwnership=false)
Definition cmnNamedMap.h:102
void GetNames(std::vector< std::string > &placeHolder) const
Definition cmnNamedMap.h:295
const_iterator begin(void) const
Definition cmnNamedMap.h:216
iterator end(void)
Definition cmnNamedMap.h:220
std::string MapName
Definition cmnNamedMap.h:79
~cmnNamedMap()
Definition cmnNamedMap.h:140
bool FindItem(const std::string &itemName) const
Definition cmnNamedMap.h:266
const cmnClassServicesBase * OwnerServices
Definition cmnNamedMap.h:85
cmnNamedMap(const char *mapName, bool takesOwnership=false)
Definition cmnNamedMap.h:112
MapType::const_iterator const_iterator
Definition cmnNamedMap.h:61
_elementType * GetItem(const std::string &name, cmnLogLevel lod=CMN_LOG_LEVEL_RUN_DEBUG) const
Definition cmnNamedMap.h:251
const_iterator end(void) const
Definition cmnNamedMap.h:224
MapType Map
Definition cmnNamedMap.h:70
const cmnClassServicesBase * Services(void) const
Definition cmnNamedMap.h:90
MapType::size_type size_type
Definition cmnNamedMap.h:65
void clear(void)
Definition cmnNamedMap.h:208
cmnNamedMap(const std::string &mapName, bool takesOwnership=false)
Definition cmnNamedMap.h:119
MapType::reverse_iterator reverse_iterator
Definition cmnNamedMap.h:62
const MapType & GetMap(void) const
Definition cmnNamedMap.h:182
bool empty(void) const
Definition cmnNamedMap.h:204
MapType::const_reverse_iterator const_reverse_iterator
Definition cmnNamedMap.h:63
bool TakesOwnership
Definition cmnNamedMap.h:76
void SetOwner(const cmnGenericObject &owner)
Definition cmnNamedMap.h:145
void ForEachVoid(VoidMethodPointer method)
Definition cmnNamedMap.h:316
Defines cmnGenericObject.
#define CMN_LOG_LEVEL_RUN_DEBUG
Definition cmnLogLoD.h:65
short cmnLogLevel
Definition cmnLogLoD.h:55
#define CMN_LOG_LEVEL_RUN_ERROR
Definition cmnLogLoD.h:62
Declaration of cmnLogger amd macros for human readable logging.
#define CMN_LOG(lod)
Definition cmnLogger.h:150
#define CMN_LOG_CLASS(lod)
Definition cmnLogger.h:95