#include <Active_Object_Map.h>
Inheritance diagram for TAO_System_Id_With_Unique_Id_Strategy:


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. | |
Strategy for the SYSTEM_ID policy (with UNIQUE_ID policy).
Definition at line 494 of file Active_Object_Map.h.
|
||||||||||||||||
|
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 }
|
1.3.6