#include <anna/diameter.comm/OamModule.hpp>
-#include <anna/diameter.comm/Engine.hpp>
#include <anna/diameter.comm/LocalServer.hpp>
#include <anna/diameter.comm/ServerSession.hpp>
#include <anna/diameter.comm/ServerSocket.hpp>
+#include <anna/diameter.comm/Engine.hpp>
#include <anna/core/functions.hpp>
#include <anna/statistics/Engine.hpp>
#include <anna/diameter.comm/TimerManager.hpp>
a_maxConnections(-1),
a_currentConnections(0),
a_allowedInactivityTime(ServerSession::DefaultAllowedInactivityTime),
- a_engine(NULL),
a_serverSocket(NULL),
a_category(0),
a_lock(false),
void LocalServer::initializeStatisticResources() {
std::string accName = "local server '";
accName += anna::functions::socketLiteralAsString(a_key.first, a_key.second);
- accName += "' on origin-realm '";
- accName += a_engine ? a_engine->getOriginRealmName() : "unknown"; // it should be known (createServer)
- accName += "' and origin-host '";
- accName += a_engine ? a_engine->getOriginHostName() : "unknown"; // it should be known (createServer)
accName += "'";
a_messageStatistics.initialize(accName);
}
OamModule &oamModule = OamModule::instantiate();
oamModule.activateAlarm(OamModule::Alarm::c_LostAvailabilityOverLocalServerDefinedAs__s__, socket.c_str());
oamModule.count(OamModule::Counter::LostAvailabilityOverLocalServer);
- a_engine->availabilityLost(this);
a_engine->refreshAvailabilityForLocalServers();
}
OamModule &oamModule = OamModule::instantiate();
oamModule.cancelAlarm(OamModule::Alarm::c_LostAvailabilityOverLocalServerDefinedAs__s__, socket.c_str());
oamModule.count(OamModule::Counter::RecoveredAvailabilityOverLocalServer);
- a_engine->availabilityRecovered(this);
a_engine->refreshAvailabilityForLocalServers();
}
result->a_parent = this;
result->a_socketId = key; // de momento...
result->initializeSequences(); // despues de asignar el LocalServer y el socketId (sequences are seed-based by mean exclusive hash)
- result->a_engine = a_engine;
a_serverSessions.insert(serverSession_value_type(key, result));
newConnection();
a_deliveryIterator = serverSession_begin();
std::string LocalServer::asString() const {
std::string result("diameter::comm::LocalServer { ");
- result += "Description: ";
+ result += "Key: ";
+ result += anna::functions::socketLiteralAsString(getKey().first, getKey().second);
+ result += " | Description: ";
result += (a_description != "") ? a_description : "undefined";
result += " | Available (any server session bound): ";
result += a_available ? "yes" : "no";