#include <Active_Object_Map.h>
Inheritance diagram for TAO_System_Id_With_Multiple_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 MULTIPLE_ID policy).
Definition at line 577 of file Active_Object_Map.h.
int TAO_System_Id_With_Multiple_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 934 of file Active_Object_Map.cpp.
References ACE_NEW_RETURN, TAO_Id_Assignment_Strategy::active_object_map_, TAO_Active_Object_Map::id_hint_strategy_, TAO_Active_Object_Map_Entry::priority_, TAO_Active_Object_Map_Entry::servant_, TAO_Active_Object_Map_Entry::user_id_, and TAO_Active_Object_Map::user_id_map_.
00938 { 00939 ACE_NEW_RETURN (entry, 00940 TAO_Active_Object_Map_Entry, 00941 -1); 00942 int result = 00943 this->active_object_map_->user_id_map_->bind_create_key (entry, 00944 entry->user_id_); 00945 if (result == 0) 00946 { 00947 entry->servant_ = servant; 00948 entry->priority_ = priority; 00949 00950 result = this->active_object_map_->id_hint_strategy_->bind (*entry); 00951 00952 if (result != 0) 00953 { 00954 this->active_object_map_->user_id_map_->unbind (entry->user_id_); 00955 delete entry; 00956 } 00957 00958 #if defined (TAO_HAS_MONITOR_POINTS) && (TAO_HAS_MONITOR_POINTS == 1) 00959 this->active_object_map_->monitor_->receive ( 00960 this->active_object_map_->user_id_map_->current_size ()); 00961 #endif /* TAO_HAS_MONITOR_POINTS==1 */ 00962 } 00963 else 00964 { 00965 delete entry; 00966 } 00967 00968 return result; 00969 }