std::string commEngineName = a_originHost + "_DiameterCommEngine";
a_commEngine = new MyDiameterEngine(commEngineName.c_str(), baseProtocolDictionary);
a_commEngine->setAutoBind(false); // allow to create client-sessions without binding them, in order to set timeouts.
- a_codecEngine = anna::diameter::codec::EngineManager::instantiate().getCodecEngine(applicationId);
+ a_codecEngine = anna::diameter::codec::EngineManager::instantiate().getCodecEngine(applicationId); // i know, this is going to exist (getCodecEngine is not null)
a_logFile = "";
a_burstLogFile = "";
a_entity->setClassCodeTimeout(anna::diameter::comm::ClassCode::ApplicationMessage, applicationTimeout);
}
-void OriginHost::startDiameterServer(const std::string &serverRepresentation, int sessions, const anna::Millisecond &inactivityTimeout) throw(anna::RuntimeException) {
+void OriginHost::startDiameterServer(const std::string &serverRepresentation, int sessions, const anna::Millisecond &inactivityTimeout, const anna::Millisecond &applicationTimeout, const std::string &ceaPathfile) throw(anna::RuntimeException) {
//if(sessions <= 0) return; negative implies no limit for accepted connections
std::string address; int port;
anna::functions::getAddressAndPortFromSocketLiteral(serverRepresentation, address, port);
std::string serverDescription = "Launcher diameter local server for "; serverDescription += a_originHost;
+ a_commEngine->setCEA(ceaPathfile);
a_diameterServer = (MyLocalServer*)(a_commEngine->createLocalServer(address, port, sessions));
// we could set sessions = 0, and after application run(), use setMaxConnections(real sessions)
// over the local server in order to start it.
a_diameterServer->setDescription(serverDescription);
a_diameterServer->setAllowedInactivityTime(inactivityTimeout);
+ a_diameterServer->setClassCodeTimeout(anna::diameter::comm::ClassCode::ApplicationMessage, applicationTimeout);
}
anna::diameter::comm::Message *OriginHost::createCommMessage() throw(anna::RuntimeException) {