#include <Active_Object_Map.h>
Inheritance diagram for TAO_Persistent_Strategy:
Public Member Functions | |
virtual int | find_servant_using_system_id_and_user_id (const PortableServer::ObjectId &system_id, const PortableServer::ObjectId &user_id, PortableServer::Servant &servant, TAO_Active_Object_Map_Entry *&entry) |
Can be used with any policy. |
Strategy for the PERSISTENT policy.
Definition at line 428 of file Active_Object_Map.h.
|
Can be used with any policy.
Implements TAO_Lifespan_Strategy. Definition at line 685 of file Active_Object_Map.cpp. References TAO_Active_Object_Map_Entry::deactivated_, TAO_Id_Hint_Strategy::find(), TAO_Active_Object_Map::id_hint_strategy_, TAO_Active_Object_Map_Entry::servant_, TAO_Active_Object_Map_Entry::user_id_, and TAO_Active_Object_Map::user_id_map_.
00689 { 00690 int result = this->active_object_map_->id_hint_strategy_->find (system_id, 00691 entry); 00692 if (result == 0 && 00693 user_id == entry->user_id_) 00694 { 00695 if (entry->deactivated_) 00696 result = -1; 00697 else if (entry->servant_ == 0) 00698 result = -1; 00699 else 00700 servant = entry->servant_; 00701 } 00702 else 00703 { 00704 result = this->active_object_map_->user_id_map_->find (user_id, 00705 entry); 00706 if (result == 0) 00707 { 00708 if (entry->deactivated_) 00709 result = -1; 00710 else if (entry->servant_ == 0) 00711 result = -1; 00712 else 00713 servant = entry->servant_; 00714 } 00715 } 00716 00717 if (result == -1) 00718 entry = 0; 00719 00720 return result; 00721 } |