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

#include <OriginHostManager.hpp>

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

Public Member Functions

virtual ~OriginHostManager ()
 
origin_hosts_it begin () const
 
origin_hosts_it end () const
 
int size () const
 
void registerOriginHost (const std::string &name, OriginHost *originHost)
 
void registerRemoteOriginHost (const std::string &remoteName, const std::string &ownName)
 
OriginHostgetOriginHost (const std::string &name) const
 
OriginHostgetOriginHostForRemoteOriginHost (const std::string &name) const
 
OriginHostgetOriginHost (const anna::U32 &applicationId) const
 
virtual anna::xml::NodeasXML (anna::xml::Node *parent) const
 

Friends

class anna::Singleton< OriginHostManager >
 

Additional Inherited Members

- Static Public Member Functions inherited from anna::Singleton< T >
static T & instantiate ()
 
static void release ()
 

Detailed Description

Helper class to centralize application Origin Host Nodes

Constructor & Destructor Documentation

◆ ~OriginHostManager()

virtual anna::diameter::comm::OriginHostManager::~OriginHostManager ( )
inlinevirtual
58 {;}

Member Function Documentation

◆ asXML()

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

Class XML representation.

Parameters
parentXML node over which we will put instance information.
Returns
XML with class content.

◆ begin()

origin_hosts_it anna::diameter::comm::OriginHostManager::begin ( ) const
inline

First element iterator

63 { return a_origin_hosts.begin(); }

◆ end()

origin_hosts_it anna::diameter::comm::OriginHostManager::end ( ) const
inline

Last element iterator

68 { return a_origin_hosts.end(); }

◆ getOriginHost() [1/2]

OriginHost* anna::diameter::comm::OriginHostManager::getOriginHost ( const std::string &  name) const

Get the associated origin host node for a provided name.

Parameters
nameOrigin Host Name
Returns
Found origin host node, NULL if not found

◆ getOriginHost() [2/2]

OriginHost* anna::diameter::comm::OriginHostManager::getOriginHost ( const anna::U32 applicationId) const

Get the associated origin host node for a specific application id No indexed map by application id, so this search is sequential, but performance is not required as this is used when receiving CER.

application id to search

Returns
Found origin host node, NULL if not found

◆ getOriginHostForRemoteOriginHost()

OriginHost* anna::diameter::comm::OriginHostManager::getOriginHostForRemoteOriginHost ( const std::string &  name) const

Get the associated origin host name for a provided remote origin host name. This relation was established on CER reception.

Parameters
nameremote origin host name
Returns
own origin host, NULL if not found

◆ registerOriginHost()

void anna::diameter::comm::OriginHostManager::registerOriginHost ( const std::string &  name,
OriginHost originHost 
)

Registers a new origin host node (externally allocated) associated to a name. If the name exists, the new origin host pointer will replace the existing one.

Parameters
nameOrigin Host Name
originHostAssociated Origin Host node

◆ registerRemoteOriginHost()

void anna::diameter::comm::OriginHostManager::registerRemoteOriginHost ( const std::string &  remoteName,
const std::string &  ownName 
)

Registers the relation between Origin Host for incoming request and own origin host.

Parameters
remoteNameorigin host name for the received CER
ownNameOwn origin host name

◆ size()

int anna::diameter::comm::OriginHostManager::size ( ) const
inline

Number of registered origin hosts

73 { return a_origin_hosts.size(); }

Friends And Related Function Documentation

◆ anna::Singleton< OriginHostManager >

friend class anna::Singleton< OriginHostManager >
friend

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