X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdiameter%2Flauncher%2FMyDiameterEngine.cpp;fp=example%2Fdiameter%2Flauncher%2FMyDiameterEngine.cpp;h=e5700c0e9e05bcf393220c0df53d5cef68182fc2;hb=bc8edd446b493d53cd351b7ed4c62dce0e305e0c;hp=0000000000000000000000000000000000000000;hpb=cac05d18bea0e6f086fc59abe2309b8e0bc0bc7d;p=anna.git diff --git a/example/diameter/launcher/MyDiameterEngine.cpp b/example/diameter/launcher/MyDiameterEngine.cpp new file mode 100644 index 0000000..e5700c0 --- /dev/null +++ b/example/diameter/launcher/MyDiameterEngine.cpp @@ -0,0 +1,49 @@ +// 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 +//#include +//#include +//#include + +// Process +#include + + +void MyDiameterEngine::readCEA(anna::DataBlock &cea, const anna::DataBlock & cer) throw() { + + LOGMETHOD(anna::TraceMethod tm("launcher::MyDiameterEngine", "readCEA", ANNA_FILE_LOCATION)); + + // Default implementation: + if (a_ceaPathfile == "") + return anna::diameter::comm::Engine::readCEA(cea, cer); + +// if(codec::functions::getCommandId(cer) != helpers::base::COMMANDID__Capabilities_Exchange_Answer) { +//throw anna::RuntimeException("The message provided as 'CEA' is not a Capabilities-Exchange-Answer", +//} + + anna::diameter::codec::Message diameterCEA(getBaseProtocolCodecEngine()); + try { + diameterCEA.loadXML(a_ceaPathfile); + diameterCEA.setHopByHop(anna::diameter::codec::functions::getHopByHop(cer)); + diameterCEA.setEndToEnd(anna::diameter::codec::functions::getEndToEnd(cer)); + cea = diameterCEA.code(); + + } catch(anna::RuntimeException &ex) { + ex.trace(); + LOGWARNING(anna::Logger::warning("CEA file not found or unable to parse. Encoding harcoded default version ...", ANNA_FILE_LOCATION)); + //return anna::diameter::comm::Engine::readCEA(cea, cer); + // will fail with empty cea + } +} +