X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fdiameter%2Fcodec%2FEngineManager.cpp;h=d45b0692babdf6d25d80a3546ae7eb046c545ca0;hb=cef452116c2966d7eaa65ff31ee7613bf3ae1b93;hp=68add2b110797f9d3e2ee57e5da5943c77dae76b;hpb=e80e62a5cf9aacad1a9551c68c432147ef98cd29;p=anna.git diff --git a/source/diameter/codec/EngineManager.cpp b/source/diameter/codec/EngineManager.cpp index 68add2b..d45b069 100644 --- a/source/diameter/codec/EngineManager.cpp +++ b/source/diameter/codec/EngineManager.cpp @@ -8,21 +8,36 @@ // Project #include +#include #include #include #include +#include + using namespace anna::diameter::codec; -Engine *EngineManager::getCodecEngine(const ApplicationId &appid) const throw() { +Engine *EngineManager::getCodecEngine(const ApplicationId &appid) const { appid_codec_engines_it it = a_appid_codec_engines.find(appid); if (it != a_appid_codec_engines.end()) return it->second; - return NULL; + // Just in case: + return getMonoStackCodecEngine(); } -void EngineManager::registerCodecEngine(const ApplicationId &appid, Engine* engine) throw() { +void EngineManager::registerCodecEngine(const ApplicationId &appid, Engine* engine) { if (!engine) return; // nothing done a_appid_codec_engines[appid] = engine; } + +anna::xml::Node* EngineManager::asXML(anna::xml::Node* parent) const +{ + anna::xml::Node* result = parent->createChild("EngineManager"); + appid_codec_engines_it it_min(a_appid_codec_engines.begin()); + appid_codec_engines_it it_max(a_appid_codec_engines.end()); + for (appid_codec_engines_it it = it_min; it != it_max; it++) + it->second->asXML(result); + + return result; +}