9 #ifndef anna_diameter_comm_Session_hpp 10 #define anna_diameter_comm_Session_hpp 59 Session(
const char *className,
const char *timerName);
138 virtual const std::string& getAddress()
const = 0;
144 virtual int getPort()
const = 0;
186 bool isBound()
const {
return a_state == State::Bound; }
200 virtual const Response* send(
const Message* message) noexcept(
false) = 0;
206 virtual bool unbind(
bool forceDisconnect =
false) noexcept(
false) = 0;
237 bool idle()
const {
return (getOTARequests() == 0); }
257 virtual std::string asString()
const ;
281 virtual void initialize() ;
282 void initializeSequences() ;
295 void response_add(
Response* response) ;
296 void response_erase(
Response* response) ;
304 const_response_iterator
response_end()
const {
return a_responses.end(); }
305 static const Response*
response(const_response_iterator ii) {
return response_container::data(ii); }
311 virtual void updateIncomingActivityTime() ;
312 virtual void updateOutgoingActivityTime() ;
326 virtual void eventPeerShutdown() = 0;
333 virtual void eventRequestRetransmission(
Message *request) = 0;
389 virtual void finalize() ;
392 virtual void expireResponse(
Response*) ;
395 void cancelActionTimer() ;
396 void activateTimer() ;
408 static const char* asText(
const State::_v) ;
container::iterator iterator
Definition: SortedVector.hpp:33
int a_socketId
Definition: Session.hpp:273
_v
Definition: Session.hpp:118
_v
Definition: Session.hpp:80
Definition: Millisecond.hpp:24
response_container::const_iterator const_response_iterator
Definition: Session.hpp:291
Definition: Session.hpp:81
const Response * send(const Message &message) noexcept(false)
Definition: Session.hpp:201
response_iterator response_end()
Definition: Session.hpp:300
unsigned int EndToEnd
Definition: defines.hpp:70
void generateNextSequences()
Definition: Session.hpp:283
response_iterator response_begin()
Definition: Session.hpp:299
Definition: Session.hpp:84
anna::diameter::comm::Timer * a_actionTimer
Definition: Session.hpp:276
Definition: Engine.hpp:102
unsigned int HopByHop
Definition: defines.hpp:68
Definition: Session.hpp:82
EndToEnd a_nextEndToEnd
Definition: Session.hpp:280
const anna::Millisecond & getLastOutgoingActivityTime() const
Definition: Session.hpp:222
bool idle() const
Definition: Session.hpp:237
anna::timex::Engine * a_timeController
Definition: Session.hpp:308
Definition: Session.hpp:85
_v
Definition: Timer.hpp:33
virtual void expire(anna::timex::Engine *timeController) noexcept(false)
Definition: Session.hpp:315
Definition: OriginHost.hpp:41
bool a_notifyOrphansOnExpiration
Definition: Session.hpp:293
OnDisconnect::_v a_onDisconnect
Definition: Session.hpp:275
static const anna::Millisecond DefaultTimeout
Definition: Session.hpp:65
State::_v a_state
Definition: Session.hpp:274
anna::SortedVector< Response, SortById, HopByHop > response_container
Definition: Session.hpp:289
State::_v getState() const
Definition: Session.hpp:113
_v
Definition: ClassCode.hpp:28
response_container a_responses
Definition: Session.hpp:292
const EndToEnd & getNextEndToEnd() const
Definition: Session.hpp:163
Definition: Session.hpp:102
Definition: Session.hpp:286
Definition: Message.hpp:26
void setOnDisconnect(const OnDisconnect::_v onDisconnect)
Definition: Session.hpp:124
Definition: Response.hpp:44
Definition: Message.hpp:45
HopByHop a_nextHopByHop
Definition: Session.hpp:279
Definition: Session.hpp:79
int getSocketId() const
Definition: Session.hpp:150
anna::Millisecond getClassCodeTimeout(const ClassCode::_v v) const
Definition: Session.hpp:179
void notifyOrphansOnExpiration(bool defer=true)
Definition: Session.hpp:251
container::const_iterator const_iterator
Definition: SortedVector.hpp:34
int getOTARequests() const
Definition: Session.hpp:229
void setClassCodeTimeout(const ClassCode::_v v, const anna::Millisecond &millisecond)
Definition: Session.hpp:173
bool isBound() const
Definition: Session.hpp:186
response_container::iterator response_iterator
Definition: Session.hpp:290
anna::Millisecond a_lastIncomingActivityTime
Definition: Session.hpp:309
static const Response * response(const_response_iterator ii)
Definition: Session.hpp:305
Definition: Session.hpp:83
virtual void timerStarted()
Definition: Session.hpp:399
OnDisconnect::_v getOnDisconnect() const
Definition: Session.hpp:130
static Response * response(response_iterator ii)
Definition: Session.hpp:301
virtual void timerStopped()
Definition: Session.hpp:398
Definition: Session.hpp:95
Definition: Engine.hpp:62
anna::Millisecond a_lastOutgoingActivityTime
Definition: Session.hpp:310
const char * a_className
Definition: Session.hpp:270
const HopByHop & getNextHopByHop() const
Definition: Session.hpp:157
Definition: Session.hpp:55
const anna::Millisecond & getLastIncomingActivityTime() const
Definition: Session.hpp:215
Definition: DataBlock.hpp:24
Definition: Session.hpp:118
const_response_iterator response_end() const
Definition: Session.hpp:304
static const int DefaultPort
Definition: Session.hpp:70
const_response_iterator response_begin() const
Definition: Session.hpp:303