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 Timer;
 class Engine;
 class Response;
+class OriginHost;
 
 
 
 
 
 
@@ -265,9 +266,6 @@ public:
 
 protected:
 
 
 protected:
 
-  // Auxiliary messages:
-  Message a_dpr;
-
   // Internal, traces, etc.
   const char *a_className;
 
   // 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;
   int a_socketId; // multiple connection functionality
   State::_v a_state;
   OnDisconnect::_v a_onDisconnect;
-  Engine *a_engine;
   anna::diameter::comm::Timer *a_actionTimer;
 
   // Sequencing
   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
      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
 
   /**
      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);
 
 
   //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
      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
 
   /**
      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*) ;
 
 
   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
   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 anna::diameter::comm::Timer;
-  friend class Engine;
   friend class Response;
 };
 
   friend class Response;
 };