TAO_Persistent_Strategy Class Reference

Persistent strategy. More...

#include <Active_Object_Map.h>

Inheritance diagram for TAO_Persistent_Strategy:

Inheritance graph
[legend]
Collaboration diagram for TAO_Persistent_Strategy:

Collaboration graph
[legend]
List of all members.

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.


Detailed Description

Persistent strategy.

Strategy for the PERSISTENT policy.

Definition at line 428 of file Active_Object_Map.h.


Member Function Documentation

int TAO_Persistent_Strategy::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
[virtual]
 

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 }


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 12:45:48 2006 for TAO_PortableServer by doxygen 1.3.6