X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;ds=sidebyside;f=source%2Fdiameter.comm%2FOriginHostManager.cpp;h=d5482c1441d9ab66f565352b4a4b8b21c139c222;hb=refs%2Fheads%2Fmaster;hp=ff929bfdde97576cbb60e7d850159465e734a8b9;hpb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;p=anna.git diff --git a/source/diameter.comm/OriginHostManager.cpp b/source/diameter.comm/OriginHostManager.cpp index ff929bf..d5482c1 100644 --- a/source/diameter.comm/OriginHostManager.cpp +++ b/source/diameter.comm/OriginHostManager.cpp @@ -28,6 +28,10 @@ void OriginHostManager::registerOriginHost(const std::string &name, OriginHost* a_origin_hosts[name] = originHost; } +void OriginHostManager::registerRemoteOriginHost(const std::string &remoteName, const std::string &ownName) { + a_remote_to_own_origin_hosts[remoteName] = ownName; +} + anna::xml::Node* OriginHostManager::asXML(anna::xml::Node* parent) const { anna::xml::Node* result = parent->createChild("OriginHostManager"); @@ -39,3 +43,25 @@ anna::xml::Node* OriginHostManager::asXML(anna::xml::Node* parent) const return result; } + +OriginHost *OriginHostManager::getOriginHost(const anna::U32 &applicationId) const { + + OriginHost *result{}; + + for (auto it: a_origin_hosts) { + result = it.second; + if (result->getApplicationId() == applicationId) return result; + } + + return NULL; +} + +OriginHost *OriginHostManager::getOriginHostForRemoteOriginHost(const std::string &name) const { + auto it = a_remote_to_own_origin_hosts.find(name); + + if (it != a_remote_to_own_origin_hosts.end()) + return getOriginHost(it->second); + + return NULL; +} +