ANNA Suite  2020b
Multipurpose development suite for Telco applications
Classes | Public Member Functions | Static Public Attributes | Friends | List of all members
anna::diameter::comm::ClientSession Class Reference

#include <ClientSession.hpp>

Inheritance diagram for anna::diameter::comm::ClientSession:
Inheritance graph
[legend]
Collaboration diagram for anna::diameter::comm::ClientSession:
Collaboration graph
[legend]

Public Member Functions

 ClientSession ()
 
void initialize ()
 
std::string getKey () const
 
const std::string & getAddress () const
 
int getPort () const
 
const ServergetParent () const
 
anna::comm::ServergetServer ()
 
void disable ()
 
void setAutoRecovery (bool autoRecovery=true)
 
bool getAutoRecovery () const
 
void setMaxConnectionDelay (const anna::Millisecond &maxConnectionDelay)
 
const anna::MillisecondgetMaxConnectionDelay ()
 
void bind () noexcept(false)
 
const Responsesend (const Message *message) noexcept(false)
 
bool unbind (bool forceDisconnect=false) noexcept(false)
 
void hide ()
 
void show ()
 
bool hidden () const
 
bool shown () const
 
std::string asString () const
 
anna::xml::NodeasXML (anna::xml::Node *parent) const
 
- Public Member Functions inherited from anna::diameter::comm::Session
 Session (const char *className, const char *timerName)
 
State::_v getState () const
 
void setOnDisconnect (const OnDisconnect::_v onDisconnect)
 
OnDisconnect::_v getOnDisconnect () const
 
int getSocketId () const
 
const HopByHopgetNextHopByHop () const
 
const EndToEndgetNextEndToEnd () const
 
void setClassCodeTimeout (const ClassCode::_v v, const anna::Millisecond &millisecond)
 
anna::Millisecond getClassCodeTimeout (const ClassCode::_v v) const
 
bool isBound () const
 
const Responsesend (const Message &message) noexcept(false)
 
const anna::MillisecondgetLastIncomingActivityTime () const
 
const anna::MillisecondgetLastOutgoingActivityTime () const
 
int getOTARequests () const
 
bool idle () const
 
void notifyOrphansOnExpiration (bool defer=true)
 
- Public Member Functions inherited from anna::timex::Timer
 Timer (const char *name, const Millisecond &timeout)
 
std::string asString () const
 
- Public Member Functions inherited from anna::timex::TimeEvent
virtual ~TimeEvent ()
 
Id getId () const
 
const MillisecondgetTimeout () const
 
const TimeEventObservergetObserver () const
 
void setId (const Id id)
 
void setTimeout (const Millisecond &timeout)
 
void setObserver (TimeEventObserver *observer)
 
bool isActive () const
 

Static Public Attributes

static const anna::Millisecond DefaultWatchdogPeriod
 
- Static Public Attributes inherited from anna::diameter::comm::Session
static const anna::Millisecond DefaultTimeout
 
static const int DefaultPort
 

Friends

class Server
 
class Engine
 
class ClientSessionReceiver
 

Additional Inherited Members

- Public Types inherited from anna::timex::TimeEvent
typedef anna::ptrnumber Id
 
- Protected Types inherited from anna::diameter::comm::Session
typedef anna::SortedVector< Response, SortById, HopByHopresponse_container
 
typedef response_container::iterator response_iterator
 
typedef response_container::const_iterator const_response_iterator
 
- Protected Member Functions inherited from anna::diameter::comm::Session
void initializeSequences ()
 
void generateNextSequences ()
 
void response_add (Response *response)
 
void response_erase (Response *response)
 
Responseresponse_find (const HopByHop hopByHop) noexcept(false)
 
response_iterator response_begin ()
 
response_iterator response_end ()
 
const_response_iterator response_begin () const
 
const_response_iterator response_end () const
 
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 ()
 
void cancelTimer ()
 
virtual void setState (State::_v state)
 
- Protected Member Functions inherited from anna::timex::TimeEvent
 TimeEvent ()
 
 TimeEvent (const Id id, const Millisecond &timeout)
 
virtual void stop () noexcept(false)
 
- Static Protected Member Functions inherited from anna::diameter::comm::Session
static Responseresponse (response_iterator ii)
 
static const Responseresponse (const_response_iterator ii)
 
static const char * asText (const State::_v)
 
static const char * asText (const OnDisconnect::_v)
 
- Protected Attributes inherited from anna::diameter::comm::Session
const char * a_className
 
int a_socketId
 
State::_v a_state
 
OnDisconnect::_v a_onDisconnect
 
anna::diameter::comm::Timera_actionTimer
 
HopByHop a_nextHopByHop
 
EndToEnd a_nextEndToEnd
 
response_container a_responses
 
bool a_notifyOrphansOnExpiration
 
anna::timex::Enginea_timeController
 
anna::Millisecond a_lastIncomingActivityTime
 
anna::Millisecond a_lastOutgoingActivityTime
 
anna::Millisecond a_timeouts [ClassCode::Max]
 

Detailed Description

Modela la conexion realizada contra un servidor diameter.

Constructor & Destructor Documentation

◆ ClientSession()

anna::diameter::comm::ClientSession::ClientSession ( )

Member Function Documentation

◆ asString()

std::string anna::diameter::comm::ClientSession::asString ( ) const
virtual

Class string representation

Returns
String with relevant information for this instance.

Reimplemented from anna::diameter::comm::Session.

◆ asXML()

anna::xml::Node* anna::diameter::comm::ClientSession::asXML ( anna::xml::Node parent) const
virtual

Class xml representation

Parameters
parentParent XML node on which hold this instance information.
Returns
XML document with relevant information for this instance.

Reimplemented from anna::diameter::comm::Session.

◆ bind()

void anna::diameter::comm::ClientSession::bind ( )
noexcept

◆ disable()

void anna::diameter::comm::ClientSession::disable ( )
inline

Disables server resource (avoid the use of the server)

105 { a_server->disable(); }
void disable() noexcept(false)
Definition: Resource.hpp:103

◆ getAddress()

const std::string& anna::diameter::comm::ClientSession::getAddress ( ) const
virtual

Diameter server address (IPv4 or hostname)

Returns
Diameter server address

Implements anna::diameter::comm::Session.

◆ getAutoRecovery()

bool anna::diameter::comm::ClientSession::getAutoRecovery ( ) const
inline

Gets the auto recovery indicator for the client connection (client-session).

Returns
Auto recovery indicator.
118 { return a_autoRecovery; }

◆ getKey()

std::string anna::diameter::comm::ClientSession::getKey ( ) const
inline

Client session key: <address ip="" or="" hostname>="">:<remote port>="">|<socket id: 0..N-1>

std::string getKey() const
Definition: ClientSession.hpp:76
const std::string & getAddress() const
int getSocketId() const
Definition: Session.hpp:150

◆ getMaxConnectionDelay()

const anna::Millisecond& anna::diameter::comm::ClientSession::getMaxConnectionDelay ( )
inline

Gets the milliseconds wait to achieve a client connection to server by mean connect primitive.

Returns
Milliseconds wait to get connection
134 { return a_server->getMaxConnectionDelay(); }
const Millisecond & getMaxConnectionDelay() const
Definition: Server.hpp:118

◆ getParent()

const Server* anna::diameter::comm::ClientSession::getParent ( ) const
inline

Diameter parent server.

Returns
Diameter parent server.
94 { return a_parent; }

◆ getPort()

int anna::diameter::comm::ClientSession::getPort ( ) const
virtual

Diameter server listen port

Returns
Diameter server listen port

Implements anna::diameter::comm::Session.

◆ getServer()

anna::comm::Server* anna::diameter::comm::ClientSession::getServer ( )
inline

Diameter server created at diameter::comm::Engine::createClientSession.

Returns
Diameter server
100 { return a_server; }

◆ hidden()

bool anna::diameter::comm::ClientSession::hidden ( ) const
inline

Returns true when client session resource is hidden for application messages delivery

155 { return a_hidden; }

◆ hide()

void anna::diameter::comm::ClientSession::hide ( )
inline

Deny resource for delivery restriction

145 { a_hidden = true; }

◆ initialize()

void anna::diameter::comm::ClientSession::initialize ( )
virtual

Reimplemented from anna::diameter::comm::Session.

◆ send()

const Response* anna::diameter::comm::ClientSession::send ( const Message message)
virtualnoexcept

◆ setAutoRecovery()

void anna::diameter::comm::ClientSession::setAutoRecovery ( bool  autoRecovery = true)
inline

Sets auto recovery indicator. When a connection is lost, by default it will be recovered automatically.

Parameters
autoRecoveryAuto recovery indicator. TRue by default.
111 { a_autoRecovery = autoRecovery; a_server->setAutoRecovery(autoRecovery); }
void setAutoRecovery(bool autoRecovery=true)

◆ setMaxConnectionDelay()

void anna::diameter::comm::ClientSession::setMaxConnectionDelay ( const anna::Millisecond maxConnectionDelay)
inline

Sets the milliseconds wait to achieve a client connection to server by mean connect primitive. This allow to perform specific configurations (some servers could be slower than others). Changes will be taken into account on the next connect operation.

Parameters
maxConnectionDelayMilliseconds wait to get connection
127 { a_server->setMaxConnectionDelay(maxConnectionDelay); }
void setMaxConnectionDelay(const Millisecond &msMaxConnectionDelay)
Definition: Server.hpp:139

◆ show()

void anna::diameter::comm::ClientSession::show ( )
inline

Allow resource for delivery permission

150 { a_hidden = false; }

◆ shown()

bool anna::diameter::comm::ClientSession::shown ( ) const
inline

Returns true when client session resource is shown for application messages delivery

160 { return !a_hidden; }

◆ unbind()

bool anna::diameter::comm::ClientSession::unbind ( bool  forceDisconnect = false)
virtualnoexcept

Friends And Related Function Documentation

◆ ClientSessionReceiver

friend class ClientSessionReceiver
friend

◆ Engine

friend class Engine
friend

◆ Server

friend class Server
friend

Member Data Documentation

◆ DefaultWatchdogPeriod

const anna::Millisecond anna::diameter::comm::ClientSession::DefaultWatchdogPeriod
static

Default watchdog period for the diameter client-session health.


The documentation for this class was generated from the following file: