TAO_System_Id_With_Unique_Id_Strategy Class Reference

System id strategy. More...

#include <Active_Object_Map.h>

Inheritance diagram for TAO_System_Id_With_Unique_Id_Strategy:

Inheritance graph
[legend]
Collaboration diagram for TAO_System_Id_With_Unique_Id_Strategy:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual int bind_using_system_id (PortableServer::Servant servant, CORBA::Short priority, TAO_Active_Object_Map_Entry *&entry)
 Must be used with SYSTEM_ID policy.


Detailed Description

System id strategy.

Strategy for the SYSTEM_ID policy (with UNIQUE_ID policy).

Definition at line 494 of file Active_Object_Map.h.


Member Function Documentation

int TAO_System_Id_With_Unique_Id_Strategy::bind_using_system_id PortableServer::Servant  servant,
CORBA::Short  priority,
TAO_Active_Object_Map_Entry *&  entry
[virtual]
 

Must be used with SYSTEM_ID policy.

Implements TAO_Id_Assignment_Strategy.

Definition at line 740 of file Active_Object_Map.cpp.

References ACE_NEW_RETURN, TAO_Id_Hint_Strategy::bind(), TAO_Active_Object_Map::id_hint_strategy_, TAO_Active_Object_Map_Entry::priority_, TAO_Active_Object_Map_Entry::servant_, TAO_Active_Object_Map::servant_map_, TAO_Id_Hint_Strategy::unbind(), TAO_Active_Object_Map_Entry::user_id_, and TAO_Active_Object_Map::user_id_map_.

00743 {
00744   ACE_NEW_RETURN (entry,
00745                   TAO_Active_Object_Map_Entry,
00746                   -1);
00747 
00748   int result = this->active_object_map_->user_id_map_->bind_create_key (entry,
00749                                                                         entry->user_id_);
00750   if (result == 0)
00751     {
00752       entry->servant_ = servant;
00753       entry->priority_ = priority;
00754 
00755       result = this->active_object_map_->id_hint_strategy_->bind (*entry);
00756 
00757       if (result == 0)
00758         {
00759           if (servant != 0)
00760             result = this->active_object_map_->servant_map_->bind (entry->servant_,
00761                                                                    entry);
00762 
00763           if (result != 0)
00764             {
00765               this->active_object_map_->user_id_map_->unbind (entry->user_id_);
00766               this->active_object_map_->id_hint_strategy_->unbind (*entry);
00767               delete entry;
00768             }
00769         }
00770       else
00771         {
00772           this->active_object_map_->user_id_map_->unbind (entry->user_id_);
00773           delete entry;
00774         }
00775     }
00776   else
00777     delete entry;
00778 
00779   return result;
00780 }


The documentation for this class was generated from the following files:
Generated on Sun Jan 27 13:27:49 2008 for TAO_PortableServer by doxygen 1.3.6