--- /dev/null
+// 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 <anna/core/core.hpp>
+#include <anna/diameter/codec/functions.hpp>
+
+//#include <anna/time/functions.hpp>
+//#include <anna/diameter.comm/Response.hpp>
+//#include <anna/diameter.comm/ClientSession.hpp>
+//#include <anna/diameter/helpers/base/functions.hpp>
+//#include <anna/diameter/helpers/dcca/functions.hpp>
+
+// Process
+#include <MyDiameterEngine.hpp>
+
+
+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
+ }
+}
+