Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO_ORB_Table Class Reference

Keep a table with all the ORBs in the system. More...

#include <ORB_Table.h>

Collaboration diagram for TAO_ORB_Table:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ACE_Hash_Map_Manager_Ex<
const char *, TAO_ORB_Core *,
ACE_Hash< const char * >,
ACE_Equal_To< const char * >,
ACE_Null_Mutex > 
Table
typedef Table::iterator Iterator

Public Methods

 TAO_ORB_Table (void)
 Constructor.

 ~TAO_ORB_Table (void)
 destructor

TAO_ORB_Core * first_orb (void)
 Obtain the first ORB for the ORB_Core_instance() implementation.

void set_default (const char *orb_id)
void not_default (const char *orb_id)
Table * table (void)
 Accessor to the underlying table_.

Iterator begin (void)
Iterator end (void)
int bind (const char *orb_id, TAO_ORB_Core *orb_core)
TAO_ORB_Core * find (const char *orb_id)
int unbind (const char *orb_id)
TAO_ORB_Core *const * get_orbs (size_t &num_orbs)

Static Public Methods

TAO_ORB_Table * instance (void)
 Return a unique instance.


Private Methods

 TAO_ORB_Table (const TAO_ORB_Table &)
 Prevent copying.

void operator= (const TAO_ORB_Table &)
void update_orbs ()
 Update our list of orbs.


Private Attributes

CORBA::Boolean first_orb_not_default_
 Variable to check if the first ORB decides not to be the default.

Table table_
 The implementation.

TAO_ORB_Core * first_orb_
 The first ORB created by the user.

TAO_ORB_Core ** orbs_
 List of orbs for get_orbs call.

size_t num_orbs_

Detailed Description

Keep a table with all the ORBs in the system.

CORBA::ORB_init() is supposed to return the same ORB if the user specifies the same ORBid, either in the ORB_init() parameter or in the -ORBid option. This class is used to implement that feature. It is also useful when trying to determine if an object reference is collocated or not.

Note:
This class should be instantiated via its instance() method. Normally this would be enforced by making the constructor protected but that forces a friend declaration containing a template type (TAO_Singleton) with a static member to be introduced. In turn, this potentially introduces problems in MS Windows DLL environments due to the occurance of multiple singleton instances. There should only be one!


Member Typedef Documentation

typedef Table::iterator TAO_ORB_Table::Iterator
 

typedef ACE_Hash_Map_Manager_Ex<const char *, TAO_ORB_Core *, ACE_Hash<const char *>, ACE_Equal_To<const char *>, ACE_Null_Mutex> TAO_ORB_Table::Table
 


Constructor & Destructor Documentation

TAO_ORB_Table::TAO_ORB_Table (  void    ) 
 

Constructor.

Note:
See the note in the class description for an explanation of why this constructor is not protected.

TAO_ORB_Table::~TAO_ORB_Table (  void    ) 
 

destructor

TAO_ORB_Table::TAO_ORB_Table (  const TAO_ORB_Table &    )  [private]
 

Prevent copying.


Member Function Documentation

TAO_ORB_Table::Iterator TAO_ORB_Table::begin (  void    ) 
 

int TAO_ORB_Table::bind (  const char *    orb_id,
TAO_ORB_Core *    orb_core
) 
 

TAO_ORB_Table::Iterator TAO_ORB_Table::end (  void    ) 
 

TAO_ORB_Core * TAO_ORB_Table::find (  const char *    orb_id ) 
 

ACE_INLINE TAO_ORB_Core * TAO_ORB_Table::first_orb (  void    ) 
 

Obtain the first ORB for the ORB_Core_instance() implementation.

TAO_ORB_Core *const * TAO_ORB_Table::get_orbs (  size_t &    num_orbs ) 
 

TAO_ORB_Table * TAO_ORB_Table::instance (  void    )  [static]
 

Return a unique instance.

void TAO_ORB_Table::not_default (  const char *    orb_id ) 
 

Method the ORB invokes to specify that it doesnt want to be the default ORB if there are more than one ORB registered.

void TAO_ORB_Table::operator= (  const TAO_ORB_Table &    )  [private]
 

void TAO_ORB_Table::set_default (  const char *    orb_id ) 
 

Set the ORB related to the orb_id as the default ORB and not the ORB that is first binded.

ACE_Hash_Map_Manager_Ex< const char *, TAO_ORB_Core *, ACE_Hash< const char * >, ACE_Equal_To< const char * >, ACE_Null_Mutex > * TAO_ORB_Table::table (  void    ) 
 

Accessor to the underlying table_.

int TAO_ORB_Table::unbind (  const char *    orb_id ) 
 

void TAO_ORB_Table::update_orbs (    )  [private]
 

Update our list of orbs.


Member Data Documentation

TAO_ORB_Core* TAO_ORB_Table::first_orb_ [private]
 

The first ORB created by the user.

CORBA::Boolean TAO_ORB_Table::first_orb_not_default_ [private]
 

Variable to check if the first ORB decides not to be the default.

size_t TAO_ORB_Table::num_orbs_ [private]
 

TAO_ORB_Core** TAO_ORB_Table::orbs_ [private]
 

List of orbs for get_orbs call.

Table TAO_ORB_Table::table_ [private]
 

The implementation.


The documentation for this class was generated from the following files:
Generated on Fri Apr 2 17:35:09 2004 for TAO by doxygen1.2.18