TAO
2.0.8
|
Table that maintains the set of ObjectKey's seen by the ORB. More...
#include <ObjectKey_Table.h>
Public Member Functions | |
ObjectKey_Table (void) | |
Default Constructor and destructor.. | |
~ObjectKey_Table (void) | |
int | destroy (void) |
Iterates and unbinds the contents of the table. | |
int | bind (const ObjectKey &key, Refcounted_ObjectKey *&key_new) |
Bind the ObjectKey in the table. | |
int | unbind (TAO::Refcounted_ObjectKey *&key) |
Unbind an ObjectKey from the table. | |
Protected Member Functions | |
int | bind_i (const ObjectKey &key, Refcounted_ObjectKey *&key_new) |
Implementation for bind (). | |
int | unbind_i (Refcounted_ObjectKey *&key) |
Implementation for unbind (). | |
Private Types | |
typedef ACE_RB_Tree < TAO::ObjectKey, TAO::Refcounted_ObjectKey *, TAO::Less_Than_ObjectKey, ACE_Null_Mutex > | TABLE |
Some useful typedefs. | |
Private Attributes | |
TAO_SYNCH_MUTEX | lock_ |
Lock for the table. | |
TABLE | table_ |
Table that contains the data. |
Table that maintains the set of ObjectKey's seen by the ORB.
The ORB maintains one table for the whole ORB. ObjectKeys generated by the ORB or the ones seen by the ORB from remote ORB's are stored here. The ObjectKeys are stored through a wrapper which encapsulates the reference count on them. This class actually provides the synchronization mechanism for manipulating the reference counts on the object keys provided by the wrapper class.
This class does not offer a find () call with a reason. The call to bind () will return a pointer which is expected to be cached by the client/caller and use the pointer in every invocation.
typedef ACE_RB_Tree<TAO::ObjectKey, TAO::Refcounted_ObjectKey *, TAO::Less_Than_ObjectKey, ACE_Null_Mutex> TAO::ObjectKey_Table::TABLE [private] |
Some useful typedefs.
TAO::ObjectKey_Table::ObjectKey_Table | ( | void | ) |
Default Constructor and destructor..
TAO::ObjectKey_Table::~ObjectKey_Table | ( | void | ) |
int TAO::ObjectKey_Table::bind | ( | const ObjectKey & | key, |
TAO::Refcounted_ObjectKey *& | key_new | ||
) |
Bind the ObjectKey in the table.
Bind an ObjectKey in the table and return a pointer to the Refcounted_ObjectKey which the client can use. If the ObjectKey is already available in the table, this operation just increments the refcount on the ObjectKey. If the ObjectKey is new it is bounded to the table. Returns a 0 on success and a -1 on failure.
int TAO::ObjectKey_Table::bind_i | ( | const ObjectKey & | key, |
TAO::Refcounted_ObjectKey *& | key_new | ||
) | [protected] |
Implementation for bind ().
int TAO::ObjectKey_Table::destroy | ( | void | ) |
Iterates and unbinds the contents of the table.
int TAO::ObjectKey_Table::unbind | ( | TAO::Refcounted_ObjectKey *& | key | ) |
Unbind an ObjectKey from the table.
int TAO::ObjectKey_Table::unbind_i | ( | TAO::Refcounted_ObjectKey *& | key_new | ) | [protected] |
Implementation for unbind ().
TAO_SYNCH_MUTEX TAO::ObjectKey_Table::lock_ [private] |
Lock for the table.
TABLE TAO::ObjectKey_Table::table_ [private] |
Table that contains the data.