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