Fix local server for multiple applications
[anna.git] / include / anna / diameter.comm / LocalServer.hpp
index ba1d494..6a63a7c 100644 (file)
@@ -43,10 +43,10 @@ namespace diameter {
 
 namespace comm {
 
-class Engine;
 class Response;
 class ServerSocket;
 class Message;
+class Engine;
 
 
 /**
@@ -65,7 +65,7 @@ class LocalServer {
   bool a_lock;
 
   // Engine
-  Engine *a_engine;
+  Engine *a_engine; // only for refresh availability
 
   // Statistics
   MessageStatistics a_messageStatistics;
@@ -186,12 +186,6 @@ public:
 
   // getters
 
-  /**
-  * Gets the diameter::comm::Engine
-  * @return Diameter::comm::Engine
-  */
-  Engine *getEngine() const { return a_engine; }
-
   /**
   * Gets the local server key
   * @return LocalServer key
@@ -380,16 +374,18 @@ protected:
      Handler for diameter client responses
 
      \param response Answer container object for corresponding diameter request
+     \param myNode Own origin host
   */
-  virtual void eventResponse(const Response& response) noexcept(false) = 0;
+  virtual void eventResponse(const Response& response, const anna::diameter::comm::OriginHost *myNode) noexcept(false) = 0;
 
   /**
      Handler for diameter client requests
 
      \param serverSession ServerSession from which request has been received
      \param request Request data block object for corresponding diameter reception
+     \param myNode Own origin host
   */
-  virtual void eventRequest(ServerSession* serverSession, const anna::DataBlock& request) noexcept(false) = 0;
+  virtual void eventRequest(ServerSession* serverSession, const anna::DataBlock& request, const anna::diameter::comm::OriginHost *myNode) noexcept(false) = 0;
   //void eventRequest(ServerSession* serverSession, const Message& request) noexcept(false);
 
   /**
@@ -397,16 +393,18 @@ protected:
 
      \param serverSession ServerSession from which request has been received
      \param response Answer data block object without context match
+     \param myNode Own origin host
   */
-  virtual void eventUnknownResponse(ServerSession* serverSession, const anna::DataBlock& response) noexcept(false) = 0;
+  virtual void eventUnknownResponse(ServerSession* serverSession, const anna::DataBlock& response, const anna::diameter::comm::OriginHost *myNode) noexcept(false) = 0;
 
   /**
      Handler for diameter client Disconnect-Peer-Answer messages
 
      \param serverSession ServerSession from which request has been received
      \param response Answer data block object without context match
+     \param myNode Own origin host
   */
-  virtual void eventDPA(ServerSession* serverSession, const anna::DataBlock& response) noexcept(false) = 0;
+  virtual void eventDPA(ServerSession* serverSession, const anna::DataBlock& response, const anna::diameter::comm::OriginHost *myNode) noexcept(false) = 0;
 
 
   friend class anna::diameter::comm::Timer;