X-Git-Url: https://git.teslayout.com/public/public/public/?p=anna.git;a=blobdiff_plain;f=source%2Fdiameter.comm%2FOriginHostManager.cpp;h=d5482c1441d9ab66f565352b4a4b8b21c139c222;hp=ff929bfdde97576cbb60e7d850159465e734a8b9;hb=HEAD;hpb=7681cb4079366eb6908dd5d0dc0124c3fcef4b6b 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; +} +