Fix local server for multiple applications
[anna.git] / include / anna / diameter.comm / Session.hpp
index 6507229..de7e569 100644 (file)
@@ -45,6 +45,7 @@ namespace comm {
 class Timer;
 class Engine;
 class Response;
+class OriginHost;
 
 
 
@@ -265,9 +266,6 @@ public:
 
 protected:
 
-  // Auxiliary messages:
-  Message a_dpr;
-
   // Internal, traces, etc.
   const char *a_className;
 
@@ -275,7 +273,6 @@ protected:
   int a_socketId; // multiple connection functionality
   State::_v a_state;
   OnDisconnect::_v a_onDisconnect;
-  Engine *a_engine;
   anna::diameter::comm::Timer *a_actionTimer;
 
   // Sequencing
@@ -339,15 +336,17 @@ protected:
      Handler for diameter session responses
 
      \param response Answer data block 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 session requests
 
      \param request Request container object for corresponding diameter reception
+     \param myNode Own origin host
   */
-  virtual void eventRequest(const anna::DataBlock& request) noexcept(false) = 0;
+  virtual void eventRequest(const anna::DataBlock& request, const anna::diameter::comm::OriginHost *myNode) noexcept(false) = 0;
   //void eventRequest(const Message& request) noexcept(false);
 
 
@@ -355,15 +354,17 @@ protected:
      Handler for diameter session responses out of context
 
      \param response Answer data block object without context match
+     \param myNode Own origin host
   */
-  virtual void eventUnknownResponse(const anna::DataBlock& response) noexcept(false) = 0;
+  virtual void eventUnknownResponse(const anna::DataBlock& response, const anna::diameter::comm::OriginHost *myNode) noexcept(false) = 0;
 
   /**
      Handler for diameter session Disconnect-Peer-Answer messages
 
      \param response Answer data block object without context match
+     \param myNode Own origin host
   */
-  virtual void eventDPA(const anna::DataBlock& response) noexcept(false) = 0;
+  virtual void eventDPA(const anna::DataBlock& response, const anna::diameter::comm::OriginHost *myNode) noexcept(false) = 0;
 
 
 
@@ -389,7 +390,7 @@ protected:
 
 
   virtual void expireResponse(Response*) ;
-  void sendDPA() noexcept(false);
+  void sendDPA(const Engine *commEngine, const anna::DataBlock &dprDataBlock) noexcept(false);
   void activateActionTimer(const anna::diameter::comm::Timer::Type::_v type) ;
   void cancelActionTimer() ;
   void activateTimer() ; // Session timer
@@ -409,7 +410,6 @@ protected:
 
 
   friend class anna::diameter::comm::Timer;
-  friend class Engine;
   friend class Response;
 };