TAO_ECG_Complex_Address_Server Class Reference

Implementation of RtecUDPAdmin idl interface, which returns a different multicast address based on event source (or event type More...

#include <ECG_Complex_Address_Server.h>

Collaboration diagram for TAO_ECG_Complex_Address_Server:

Collaboration graph
List of all members.

Public Member Functions

virtual ~TAO_ECG_Complex_Address_Server (void)
int init (const char *arg)
virtual void get_addr (const RtecEventComm::EventHeader &header, RtecUDPAdmin::UDP_Addr_out addr) throw (CORBA::SystemException)
void dump_content (void)

Static Public Member Functions

static TAO_EC_Servant_Var<
create (int is_source_mapping=1)
 Create a new TAO_ECG_Complex_Address_Server object.

Protected Member Functions

 TAO_ECG_Complex_Address_Server (int is_source_mapping=1)

Private Types

typedef ACE_Hash_Map_Manager_Ex<
ACE_Hash< CORBA::Long >,
ACE_Equal_To< CORBA::Long >,

Private Member Functions

int add_entry (const char *key, const char *mcast_addr)

Private Attributes

int is_source_mapping_
MAP mcast_mapping_
ACE_INET_Addr default_addr_

Detailed Description

Implementation of RtecUDPAdmin idl interface, which returns a different multicast address based on event source (or event type


The string is a sequence of <key><value> pairs separated by a single space, where <key> is event source (or type) and

is the corresponding mcast address. Example: "34@ 45@" The string above represents two key-value pairs.

A special key "*" is used to specify the default mcast address, i.e., the one that will be returned for event sources that weren't explicitly specified in the initialization string. Example: "*@ 45@"

Member Typedef Documentation

typedef ACE_Hash_Map_Manager_Ex<CORBA::Long, ACE_INET_Addr, ACE_Hash<CORBA::Long>, ACE_Equal_To<CORBA::Long>, ACE_Null_Mutex> TAO_ECG_Complex_Address_Server::MAP [private]

Constructor & Destructor Documentation

TAO_ECG_Complex_Address_Server::~TAO_ECG_Complex_Address_Server ( void   )  [virtual]


TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_ECG_Complex_Address_Server::TAO_ECG_Complex_Address_Server ( int  is_source_mapping = 1  )  [protected]

Constructor (protected). Clients can create new TAO_ECG_Complex_Address_Server objects using the static create() method. <is_source_mapping> flag indicates whether this server maps based on event header source or event header type.

Member Function Documentation

int TAO_ECG_Complex_Address_Server::add_entry ( const char *  key,
const char *  mcast_addr 
) [private]

Helper. Given key and mcast address in string form, add them to the mapping.

static TAO_EC_Servant_Var<TAO_ECG_Complex_Address_Server> TAO_ECG_Complex_Address_Server::create ( int  is_source_mapping = 1  )  [static]

Create a new TAO_ECG_Complex_Address_Server object.

void TAO_ECG_Complex_Address_Server::dump_content ( void   ) 

Prints out complete content of the address server. Useful for debugging.

void TAO_ECG_Complex_Address_Server::get_addr ( const RtecEventComm::EventHeader header,
RtecUDPAdmin::UDP_Addr_out  addr 
) throw (CORBA::SystemException) [virtual]

int TAO_ECG_Complex_Address_Server::init ( const char *  arg  ) 

Initializes the mapping from the <arg> string. See class notes for the expected format.

Member Data Documentation

ACE_INET_Addr TAO_ECG_Complex_Address_Server::default_addr_ [private]

Mcast group to be used for all sources (or types) not explicitly mapped.

int TAO_ECG_Complex_Address_Server::is_source_mapping_ [private]

Flag indicating whether this address server maps event source or event type to mcast groups.

MAP TAO_ECG_Complex_Address_Server::mcast_mapping_ [private]

The documentation for this class was generated from the following files:
Generated on Tue Nov 21 09:55:37 2006 for TAO_RTEvent by  doxygen 1.4.7-1