X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fdiameter.comm%2FOriginHostManager.cpp;fp=source%2Fdiameter.comm%2FOriginHostManager.cpp;h=067444d83849ba7de1b13d0ba52072b8cb8883d3;hb=a4a2ff4e20ddc4c6de7f2d3efd3acfb16c0d91c1;hp=0000000000000000000000000000000000000000;hpb=61f81319bb14f08094488e8a2478ff4e0d6d661a;p=anna.git diff --git a/source/diameter.comm/OriginHostManager.cpp b/source/diameter.comm/OriginHostManager.cpp new file mode 100644 index 0000000..067444d --- /dev/null +++ b/source/diameter.comm/OriginHostManager.cpp @@ -0,0 +1,46 @@ +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // + + +// Project +#include +#include +#include +#include + + +using namespace anna::diameter::comm; + +OriginHost *OriginHostManager::getOriginHost(const std::string &name) const throw() { + origin_hosts_it it = a_origin_hosts.find(name); + if (it != a_origin_hosts.end()) + return it->second; + + LOGWARNING( + std::string msg = "Unknown origin host node with name '"; msg += name; msg += "'"; + anna::Logger::warning(msg, ANNA_FILE_LOCATION); + ); + + return NULL; +} + +void OriginHostManager::registerOriginHost(const std::string &name, OriginHost* originHost) throw() { + if (!originHost) return; // nothing done + a_origin_hosts[name] = originHost; +} + +anna::xml::Node* OriginHostManager::asXML(anna::xml::Node* parent) const +throw() { + anna::xml::Node* result = parent->createChild("OriginHostManager"); + origin_hosts_it it_min(a_origin_hosts.begin()); + origin_hosts_it it_max(a_origin_hosts.end()); + for (origin_hosts_it it = it_min; it != it_max; it++) + it->second->asXML(result); + + return result; +} +