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

TAO_Object_Ref_Table Class Reference

Keep a table de-stringified object references registered with the ORB. More...

#include <Object_Ref_Table.h>

Collaboration diagram for TAO_Object_Ref_Table:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ACE_Hash_Map_Manager_Ex<
const char *, CORBA::Object_ptr,
ACE_Hash< const char * >,
ACE_Equal_To< const char * >,
TAO_SYNCH_MUTEX > 
Table
typedef Table::iterator Iterator

Public Methods

 TAO_Object_Ref_Table (void)
 Constructor.

 ~TAO_Object_Ref_Table (void)
 Destructor.

void register_initial_reference (const char *id, CORBA::Object_ptr obj ACE_ENV_ARG_DECL)
CORBA::Object_ptr resolve_initial_references (const char *id ACE_ENV_ARG_DECL)
void destroy (void)
 Explicitly destroy the contents of the object reference table.

size_t current_size (void) const
 Return the current size of the underlying table.

Forward Iterators
Iterator begin (void)
Iterator end (void)

Private Methods

 TAO_Object_Ref_Table (const TAO_Object_Ref_Table &)
 Prevent copying.

void operator= (const TAO_Object_Ref_Table &)
The canonical ACE_Map methods
int bind (const char *orb_id, CORBA::Object_ptr obj)
CORBA::Object_ptr find (const char *orb_id)
int unbind (const char *orb_id)

Private Attributes

Table table_
 The implementation.


Detailed Description

Keep a table de-stringified object references registered with the ORB.

The class is necessary to allow local objects to be accessible via the resolve_initial_references() mechanism. Since local object references cannot be stringified, they cannot be placed into the initial reference map that maps object key/name to stringified object reference. Hence, another table is needed.

Note:
The stringified reference table is still needed since it is sometimes necessary to delay de-stringification of an IOR until it is needed. For example, "corbaname" may return different results on each use.


Member Typedef Documentation

typedef Table::iterator TAO_Object_Ref_Table::Iterator
 

typedef ACE_Hash_Map_Manager_Ex<const char *, CORBA::Object_ptr, ACE_Hash<const char *>, ACE_Equal_To<const char *>, TAO_SYNCH_MUTEX> TAO_Object_Ref_Table::Table
 


Constructor & Destructor Documentation

TAO_Object_Ref_Table::TAO_Object_Ref_Table void   
 

Constructor.

TAO_Object_Ref_Table::~TAO_Object_Ref_Table void   
 

Destructor.

TAO_Object_Ref_Table::TAO_Object_Ref_Table const TAO_Object_Ref_Table &    [private]
 

Prevent copying.


Member Function Documentation

TAO_Object_Ref_Table::Iterator TAO_Object_Ref_Table::begin void   
 

int TAO_Object_Ref_Table::bind const char *    orb_id,
CORBA::Object_ptr    obj
[private]
 

size_t TAO_Object_Ref_Table::current_size void    const
 

Return the current size of the underlying table.

void TAO_Object_Ref_Table::destroy void   
 

Explicitly destroy the contents of the object reference table.

TAO_Object_Ref_Table::Iterator TAO_Object_Ref_Table::end void   
 

CORBA::Object_ptr TAO_Object_Ref_Table::find const char *    orb_id [private]
 

void TAO_Object_Ref_Table::operator= const TAO_Object_Ref_Table &    [private]
 

void TAO_Object_Ref_Table::register_initial_reference const char *    id,
CORBA::Object_ptr obj    ACE_ENV_ARG_DECL
 

Register an object reference with the table, and map the given ID to it.

CORBA::Object_ptr TAO_Object_Ref_Table::resolve_initial_references const char *id    ACE_ENV_ARG_DECL
 

Return the object reference associated with the given ID. A duplicate is returned.

int TAO_Object_Ref_Table::unbind const char *    orb_id [private]
 


Member Data Documentation

Table TAO_Object_Ref_Table::table_ [private]
 

The implementation.


The documentation for this class was generated from the following files:
Generated on Wed Jan 14 23:29:12 2004 for TAO by doxygen1.2.18