Active_Object_Map.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Active_Object_Map.h
00006  *
00007  *  $Id: Active_Object_Map.h 79258 2007-08-08 11:58:47Z johnnyw $
00008  *
00009  *  @author Irfan Pyarali
00010  */
00011 //=============================================================================
00012 
00013 
00014 #ifndef TAO_ACTIVE_OBJECT_MAP_H
00015 #define TAO_ACTIVE_OBJECT_MAP_H
00016 
00017 #include /**/ "ace/pre.h"
00018 
00019 #include "tao/PortableServer/Key_Adapters.h"
00020 
00021 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00022 # pragma once
00023 #endif /* ACE_LACKS_PRAGMA_ONCE */
00024 
00025 #include "tao/PortableServer/Servant_Base.h"
00026 #include "tao/Server_Strategy_Factory.h"
00027 #include "ace/Map_T.h"
00028 
00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00030 
00031 // Forward declarations.
00032 class TAO_Id_Uniqueness_Strategy;
00033 class TAO_Lifespan_Strategy;
00034 class TAO_Id_Assignment_Strategy;
00035 class TAO_Id_Hint_Strategy;
00036 struct TAO_Active_Object_Map_Entry;
00037 
00038 /**
00039  * @class TAO_Active_Object_Map
00040  *
00041  * @brief Map of object ids to servants.
00042  *
00043  * Implementation to be used by the POA.
00044  */
00045 class TAO_Active_Object_Map
00046 {
00047 public:
00048 
00049   /// Constructor.
00050   TAO_Active_Object_Map (int user_id_policy,
00051                          int unique_id_policy,
00052                          int persistent_id_policy,
00053                          const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters);
00054 
00055   /// Destructor.
00056   ~TAO_Active_Object_Map (void);
00057 
00058   /// Must be used with UNIQUE_ID policy.
00059   int is_servant_in_map (PortableServer::Servant servant,
00060                          bool &deactivated);
00061 
00062   /// Can be used with any policy.  With the SYSTEM_ID policy,
00063   /// user_id is actually system_id.
00064   bool is_user_id_in_map (const PortableServer::ObjectId &user_id,
00065                           CORBA::Short priority,
00066                           bool &priorities_match,
00067                           bool &deactivated);
00068 
00069   /// Must be used with SYSTEM_ID policy.
00070   int bind_using_system_id_returning_system_id (PortableServer::Servant servant,
00071                                                 CORBA::Short priority,
00072                                                 PortableServer::ObjectId_out system_id);
00073 
00074   /// Must be used with SYSTEM_ID policy.
00075   int bind_using_system_id_returning_user_id (PortableServer::Servant servant,
00076                                               CORBA::Short priority,
00077                                               PortableServer::ObjectId_out user_id);
00078 
00079   /// Can be used with any policy.  With the SYSTEM_ID policy,
00080   /// user_id is actually system_id.
00081   int bind_using_user_id (PortableServer::Servant servant,
00082                           const PortableServer::ObjectId &user_id,
00083                           CORBA::Short priority);
00084 
00085   /// Can be used with any policy.  With the SYSTEM_ID policy,
00086   /// user_id is actually system_id.
00087   int find_system_id_using_user_id (const PortableServer::ObjectId &user_id,
00088                                     CORBA::Short priority,
00089                                     PortableServer::ObjectId_out system_id);
00090 
00091   /// Can be used with any policy.
00092   int rebind_using_user_id_and_system_id (PortableServer::Servant servant,
00093                                           const PortableServer::ObjectId &user_id,
00094                                           const PortableServer::ObjectId &system_id,
00095                                           TAO_Active_Object_Map_Entry *&entry);
00096 
00097   /// Can be used with any policy.  With the SYSTEM_ID policy,
00098   /// user_id is actually system_id.
00099   int unbind_using_user_id (const PortableServer::ObjectId &user_id);
00100 
00101   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00102   /// user_id is actually system_id.
00103   int find_user_id_using_servant (PortableServer::Servant servant,
00104                                   PortableServer::ObjectId_out user_id);
00105 
00106   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00107   /// user_id is actually system_id.
00108   int find_system_id_using_servant (PortableServer::Servant servant,
00109                                     PortableServer::ObjectId_out system_id,
00110                                     CORBA::Short &priority);
00111 
00112   /// Can be used with any policy. With the SYSTEM_ID policy,
00113   /// user_id is actually system_id.
00114   int find_servant_using_user_id (const PortableServer::ObjectId &user_id,
00115                                   PortableServer::Servant &servant);
00116 
00117 
00118   /// Can be used with any policy.
00119   int find_servant_using_system_id_and_user_id (const PortableServer::ObjectId &system_id,
00120                                                 const PortableServer::ObjectId &user_id,
00121                                                 PortableServer::Servant &servant,
00122                                                 TAO_Active_Object_Map_Entry *&entry);
00123 
00124   /// Can be used with any policy.  With the SYSTEM_ID policy,
00125   /// @a user_id is identical to @a system_id.
00126   int find_servant_and_system_id_using_user_id (const PortableServer::ObjectId &user_id,
00127                                                 PortableServer::Servant &servant,
00128                                                 PortableServer::ObjectId_out system_id,
00129                                                 CORBA::Short &priority);
00130 
00131   /// Can be used with any policy.  With the SYSTEM_ID policy,
00132   /// <user_id> is identical to <system_id>.
00133   /**
00134    * @retval -1 Entry is not found or is deactivated.
00135    * @retval 0 Entry is found.
00136    */
00137   int find_entry_using_user_id (const PortableServer::ObjectId &user_id,
00138                                 TAO_Active_Object_Map_Entry *&entry);
00139 
00140   /// Can be used with any policy.  When the SYSTEM_ID policy is used,
00141   /// the <system_id> is identical to <user_id>.
00142   int find_user_id_using_system_id (const PortableServer::ObjectId &system_id,
00143                                     PortableServer::ObjectId_out user_id);
00144 
00145   /// Can be used with any policy.  When the SYSTEM_ID policy is used,
00146   /// the <system_id> is identical to <user_id>.
00147   int find_user_id_using_system_id (const PortableServer::ObjectId &system_id,
00148                                     PortableServer::ObjectId &user_id);
00149 
00150   /// Are there any remaining activations of @a servant in the active
00151   /// object map?  Can be used with any policy.
00152   CORBA::Boolean remaining_activations (PortableServer::Servant servant);
00153 
00154   /// Size of the map.
00155   size_t current_size (void);
00156 
00157   /// Can be used with any policy.
00158   static size_t system_id_size (void);
00159 
00160   /// Set the system id size.
00161   static void set_system_id_size (const TAO_Server_Strategy_Factory::Active_Object_Map_Creation_Parameters &creation_parameters);
00162 
00163   /// Base class of the id map.
00164   typedef ACE_Map<
00165   PortableServer::ObjectId,
00166     TAO_Active_Object_Map_Entry *> user_id_map;
00167 
00168   /// Id hash map.
00169   typedef ACE_Hash_Map_Manager_Ex_Adapter<
00170   PortableServer::ObjectId,
00171     TAO_Active_Object_Map_Entry *,
00172     TAO_ObjectId_Hash,
00173     ACE_Equal_To<PortableServer::ObjectId>,
00174     TAO_Incremental_Key_Generator> user_id_hash_map;
00175 
00176   /// Id linear map.
00177   typedef ACE_Map_Manager_Adapter<
00178   PortableServer::ObjectId,
00179     TAO_Active_Object_Map_Entry *,
00180     TAO_Incremental_Key_Generator> user_id_linear_map;
00181 
00182   /// Id active map.
00183   typedef ACE_Active_Map_Manager_Adapter<
00184   PortableServer::ObjectId,
00185     TAO_Active_Object_Map_Entry *,
00186     TAO_Ignore_Original_Key_Adapter> user_id_active_map;
00187 
00188   /// Base class of the servant map.
00189   typedef ACE_Map<
00190   PortableServer::Servant,
00191     TAO_Active_Object_Map_Entry *> servant_map;
00192 
00193   /// Servant hash map.
00194   typedef ACE_Hash_Map_Manager_Ex_Adapter<
00195   PortableServer::Servant,
00196     TAO_Active_Object_Map_Entry *,
00197     TAO_Servant_Hash,
00198     ACE_Equal_To<PortableServer::Servant>,
00199     ACE_Noop_Key_Generator<PortableServer::Servant> > servant_hash_map;
00200 
00201 #if (TAO_HAS_MINIMUM_POA_MAPS == 0)
00202   /// Servant linear map.
00203   typedef ACE_Map_Manager_Adapter<
00204   PortableServer::Servant,
00205     TAO_Active_Object_Map_Entry *,
00206     ACE_Noop_Key_Generator<PortableServer::Servant> > servant_linear_map;
00207 #endif /* TAO_HAS_MINIMUM_POA_MAPS == 0 */
00208 
00209   /// Id map.
00210   user_id_map *user_id_map_;
00211 
00212   /// Servant map.
00213   servant_map *servant_map_;
00214 
00215   /// Id uniqueness strategy.
00216   TAO_Id_Uniqueness_Strategy *id_uniqueness_strategy_;
00217 
00218   /// Lifespan strategy.
00219   TAO_Lifespan_Strategy *lifespan_strategy_;
00220 
00221   /// Id assignment strategy.
00222   TAO_Id_Assignment_Strategy *id_assignment_strategy_;
00223 
00224   /// Id hint strategy.
00225   TAO_Id_Hint_Strategy *id_hint_strategy_;
00226 
00227   /// Flag to see if we are using active maps in this active object
00228   /// map.
00229   bool using_active_maps_;
00230 
00231   /// Size of the system id produced by the map.
00232   static size_t system_id_size_;
00233 };
00234 
00235 /**
00236  * @class TAO_Id_Uniqueness_Strategy
00237  *
00238  * @brief Id uniqueness strategy.
00239  *
00240  * Strategy for implementing points of variation between the
00241  * UNIQUE_ID and the MULTIPLE_ID policies.
00242  */
00243 class TAO_Id_Uniqueness_Strategy
00244 {
00245 public:
00246   /// Virtual destructor.
00247   virtual ~TAO_Id_Uniqueness_Strategy (void);
00248 
00249   /// Must be used with UNIQUE_ID policy.
00250   virtual int is_servant_in_map (PortableServer::Servant servant,
00251                                  bool &deactivated) = 0;
00252 
00253   /// Can be used with any policy.  With the SYSTEM_ID policy,
00254   /// <user_id> is actually <system_id>.
00255   virtual int unbind_using_user_id (const PortableServer::ObjectId &user_id) = 0;
00256 
00257   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00258   /// <user_id> is actually <system_id>.
00259   virtual int find_user_id_using_servant (PortableServer::Servant servant,
00260                                           PortableServer::ObjectId_out user_id) = 0;
00261 
00262   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00263   /// <user_id> is actually <system_id>.
00264   virtual int find_system_id_using_servant (PortableServer::Servant servant,
00265                                             PortableServer::ObjectId_out system_id,
00266                                             CORBA::Short &priority) = 0;
00267 
00268   /// Can be used with any policy.  With the SYSTEM_ID policy,
00269   /// <user_id> is actually <system_id>.
00270   virtual int bind_using_user_id (PortableServer::Servant servant,
00271                                   const PortableServer::ObjectId &user_id,
00272                                   CORBA::Short priority,
00273                                   TAO_Active_Object_Map_Entry *&entry) = 0;
00274 
00275   /// Are there any remaining activations of <servant> in the active
00276   /// object map?  Can be used with any policy.
00277   virtual CORBA::Boolean remaining_activations (PortableServer::Servant servant) = 0;
00278 
00279   /// Set the active map.
00280   void set_active_object_map (TAO_Active_Object_Map *active_object_map);
00281 
00282 protected:
00283 
00284   /// Pointer to the active map.
00285   TAO_Active_Object_Map *active_object_map_;
00286 };
00287 
00288 /**
00289  * @class TAO_Unique_Id_Strategy
00290  *
00291  * @brief Unique id strategy.
00292  *
00293  * Strategy for the UNIQUE_ID policy.
00294  */
00295 class TAO_Unique_Id_Strategy : public TAO_Id_Uniqueness_Strategy
00296 {
00297 public:
00298 
00299   /// Must be used with UNIQUE_ID policy.
00300   virtual int is_servant_in_map (PortableServer::Servant servant,
00301                                  bool &deactivated);
00302 
00303   /// Can be used with any policy.  With the SYSTEM_ID policy,
00304   /// <user_id> is actually <system_id>.
00305   virtual int unbind_using_user_id (const PortableServer::ObjectId &user_id);
00306 
00307   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00308   /// <user_id> is actually <system_id>.
00309   virtual int find_user_id_using_servant (PortableServer::Servant servant,
00310                                           PortableServer::ObjectId_out user_id);
00311 
00312   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00313   /// <user_id> is actually <system_id>.
00314   virtual int find_system_id_using_servant (PortableServer::Servant servant,
00315                                             PortableServer::ObjectId_out system_id,
00316                                             CORBA::Short &priority);
00317 
00318   /// Can be used with any policy.  With the SYSTEM_ID policy,
00319   /// <user_id> is actually <system_id>.
00320   virtual int bind_using_user_id (PortableServer::Servant servant,
00321                                   const PortableServer::ObjectId &user_id,
00322                                   CORBA::Short priority,
00323                                   TAO_Active_Object_Map_Entry *&entry);
00324 
00325   /// Are there any remaining activations of <servant> in the active
00326   /// object map?  Can be used with any policy.
00327   virtual CORBA::Boolean remaining_activations (PortableServer::Servant servant);
00328 };
00329 
00330 #if !defined (CORBA_E_MICRO)
00331 /**
00332  * @class TAO_Multiple_Id_Strategy
00333  *
00334  * @brief Multiple id strategy.
00335  *
00336  * Strategy for the MULTIPLE_ID policy.
00337  */
00338 class TAO_Multiple_Id_Strategy : public TAO_Id_Uniqueness_Strategy
00339 {
00340 public:
00341 
00342   /// Must be used with UNIQUE_ID policy.
00343   virtual int is_servant_in_map (PortableServer::Servant servant,
00344                                  bool &deactivated);
00345 
00346   /// Can be used with any policy.  With the SYSTEM_ID policy,
00347   /// <user_id> is actually <system_id>.
00348   virtual int unbind_using_user_id (const PortableServer::ObjectId &user_id);
00349 
00350   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00351   /// <user_id> is actually <system_id>.
00352   virtual int find_user_id_using_servant (PortableServer::Servant servant,
00353                                           PortableServer::ObjectId_out user_id);
00354 
00355   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00356   /// <user_id> is actually <system_id>.
00357   virtual int find_system_id_using_servant (PortableServer::Servant servant,
00358                                             PortableServer::ObjectId_out system_id,
00359                                             CORBA::Short &priority);
00360 
00361   /// Can be used with any policy.  With the SYSTEM_ID policy,
00362   /// <user_id> is actually <system_id>.
00363   virtual int bind_using_user_id (PortableServer::Servant servant,
00364                                   const PortableServer::ObjectId &user_id,
00365                                   CORBA::Short priority,
00366                                   TAO_Active_Object_Map_Entry *&entry);
00367 
00368   /// Are there any remaining activations of <servant> in the active
00369   /// object map?  Can be used with any policy.
00370   virtual CORBA::Boolean remaining_activations (PortableServer::Servant servant);
00371 };
00372 #endif
00373 
00374 /**
00375  * @class TAO_Lifespan_Strategy
00376  *
00377  * @brief Lifespan strategy.
00378  *
00379  * Strategy for implementing points of variation between the
00380  * TRANSIENT and the PERSISTENT policies.
00381  */
00382 class TAO_Lifespan_Strategy
00383 {
00384 public:
00385 
00386   /// Virtual destructor.
00387   virtual ~TAO_Lifespan_Strategy (void);
00388 
00389   /// Can be used with any policy.
00390   virtual int find_servant_using_system_id_and_user_id (const PortableServer::ObjectId &system_id,
00391                                                         const PortableServer::ObjectId &user_id,
00392                                                         PortableServer::Servant &servant,
00393                                                         TAO_Active_Object_Map_Entry *&entry) = 0;
00394 
00395   /// Set the active map.
00396   void set_active_object_map (TAO_Active_Object_Map *active_object_map);
00397 
00398 protected:
00399 
00400   /// Pointer to the active map.
00401   TAO_Active_Object_Map *active_object_map_;
00402 };
00403 
00404 /**
00405  * @class TAO_Transient_Strategy
00406  *
00407  * @brief Transient strategy.
00408  *
00409  * Strategy for the TRANSIENT policy.
00410  */
00411 class TAO_Transient_Strategy : public TAO_Lifespan_Strategy
00412 {
00413 public:
00414   /// Can be used with any policy.
00415   virtual int find_servant_using_system_id_and_user_id (const PortableServer::ObjectId &system_id,
00416                                                         const PortableServer::ObjectId &user_id,
00417                                                         PortableServer::Servant &servant,
00418                                                         TAO_Active_Object_Map_Entry *&entry);
00419 };
00420 
00421 #if !defined (CORBA_E_MICRO)
00422 /**
00423  * @class TAO_Persistent_Strategy
00424  *
00425  * @brief Persistent strategy.
00426  *
00427  * Strategy for the PERSISTENT policy.
00428  */
00429 class TAO_Persistent_Strategy : public TAO_Lifespan_Strategy
00430 {
00431 public:
00432   /// Can be used with any policy.
00433   virtual int find_servant_using_system_id_and_user_id (const PortableServer::ObjectId &system_id,
00434                                                         const PortableServer::ObjectId &user_id,
00435                                                         PortableServer::Servant &servant,
00436                                                         TAO_Active_Object_Map_Entry *&entry);
00437 
00438 };
00439 #endif
00440 
00441 /**
00442  * @class TAO_Id_Assignment_Strategy
00443  *
00444  * @brief Id uniqueness strategy.
00445  *
00446  * Strategy for implementing points of variation between the
00447  * USER_ID and the SYSTEM_ID policies.
00448  */
00449 class TAO_Id_Assignment_Strategy
00450 {
00451 public:
00452   /// Virtual destructor.
00453   virtual ~TAO_Id_Assignment_Strategy (void);
00454 
00455   /// Must be used with SYSTEM_ID policy.
00456   virtual int bind_using_system_id (PortableServer::Servant servant,
00457                                     CORBA::Short priority,
00458                                     TAO_Active_Object_Map_Entry *&entry) = 0;
00459 
00460   /// Set the active map.
00461   void set_active_object_map (TAO_Active_Object_Map *active_object_map);
00462 
00463 protected:
00464 
00465   /// Pointer to the active map.
00466   TAO_Active_Object_Map *active_object_map_;
00467 };
00468 
00469 #if !defined (CORBA_E_MICRO)
00470 /**
00471  * @class TAO_User_Id_Strategy
00472  *
00473  * @brief User id strategy.
00474  *
00475  * Strategy for the USER_ID policy.
00476  */
00477 class TAO_User_Id_Strategy : public TAO_Id_Assignment_Strategy
00478 {
00479 public:
00480   /// Must be used with SYSTEM_ID policy.
00481   virtual int bind_using_system_id (PortableServer::Servant servant,
00482                                     CORBA::Short priority,
00483                                     TAO_Active_Object_Map_Entry *&entry);
00484 };
00485 #endif
00486 
00487 /**
00488  * @class TAO_System_Id_With_Unique_Id_Strategy
00489  *
00490  * @brief System id strategy.
00491  *
00492  * Strategy for the SYSTEM_ID policy (with UNIQUE_ID policy).
00493  */
00494 class TAO_System_Id_With_Unique_Id_Strategy : public TAO_Id_Assignment_Strategy
00495 {
00496 public:
00497   /// Must be used with SYSTEM_ID policy.
00498   virtual int bind_using_system_id (PortableServer::Servant servant,
00499                                     CORBA::Short priority,
00500                                     TAO_Active_Object_Map_Entry *&entry);
00501 };
00502 
00503 #if !defined (CORBA_E_MICRO)
00504 /**
00505  * @class TAO_System_Id_With_Multiple_Id_Strategy
00506  *
00507  * @brief System id strategy.
00508  *
00509  * Strategy for the SYSTEM_ID policy (with MULTIPLE_ID policy).
00510  */
00511 class TAO_System_Id_With_Multiple_Id_Strategy : public TAO_Id_Assignment_Strategy
00512 {
00513 public:
00514   /// Must be used with SYSTEM_ID policy.
00515   virtual int bind_using_system_id (PortableServer::Servant servant,
00516                                     CORBA::Short priority,
00517                                     TAO_Active_Object_Map_Entry *&entry);
00518 };
00519 #endif
00520 
00521 /**
00522  * @class TAO_Id_Hint_Strategy
00523  *
00524  * @brief Id uniqueness strategy.
00525  *
00526  * Strategy for implementing points of variation between the
00527  * active hint and the no hint policies.
00528  */
00529 class TAO_Id_Hint_Strategy
00530 {
00531 public:
00532   /// Virtual destructor.
00533   virtual ~TAO_Id_Hint_Strategy (void);
00534 
00535   /// Find the user id from the system id.
00536   virtual int recover_key (const PortableServer::ObjectId &system_id,
00537                            PortableServer::ObjectId &user_id) = 0;
00538 
00539   /// Add to map.
00540   virtual int bind (TAO_Active_Object_Map_Entry &entry) = 0;
00541 
00542   /// Remove from map.
00543   virtual int unbind (TAO_Active_Object_Map_Entry &entry) = 0;
00544 
00545   /// Find system id.
00546   virtual int find (const PortableServer::ObjectId &system_id,
00547                     TAO_Active_Object_Map_Entry *&entry) = 0;
00548 
00549   /// How big is the hint generated by this strategy?
00550   virtual size_t hint_size (void) = 0;
00551 
00552   /// Get the system id associated with this entry.
00553   virtual int system_id (PortableServer::ObjectId_out system_id,
00554                          TAO_Active_Object_Map_Entry &entry) = 0;
00555 };
00556 
00557 /**
00558  * @class TAO_Active_Hint_Strategy
00559  *
00560  * @brief Active hint strategy.
00561  *
00562  * Strategy for adding active hints to ids.
00563  */
00564 class TAO_Active_Hint_Strategy : public TAO_Id_Hint_Strategy
00565 {
00566 public:
00567   TAO_Active_Hint_Strategy (CORBA::ULong map_size);
00568 
00569   /// Virtual destructor.
00570   virtual ~TAO_Active_Hint_Strategy (void);
00571 
00572   virtual int recover_key (const PortableServer::ObjectId &system_id,
00573                            PortableServer::ObjectId &user_id);
00574 
00575   virtual int bind (TAO_Active_Object_Map_Entry &entry);
00576 
00577   virtual int unbind (TAO_Active_Object_Map_Entry &entry);
00578 
00579   virtual int find (const PortableServer::ObjectId &system_id,
00580                     TAO_Active_Object_Map_Entry *&entry);
00581 
00582   virtual size_t hint_size (void);
00583 
00584   virtual int system_id (PortableServer::ObjectId_out system_id,
00585                          TAO_Active_Object_Map_Entry &entry);
00586 
00587   typedef ACE_Active_Map_Manager_Adapter<
00588   PortableServer::ObjectId,
00589     TAO_Active_Object_Map_Entry *,
00590     TAO_Preserve_Original_Key_Adapter> system_id_map;
00591 
00592   system_id_map system_id_map_;
00593 };
00594 
00595 /**
00596  * @class TAO_No_Hint_Strategy
00597  *
00598  * @brief No hint strategy.
00599  *
00600  * Strategy for not adding active hints to ids.
00601  */
00602 class TAO_No_Hint_Strategy : public TAO_Id_Hint_Strategy
00603 {
00604 public:
00605   /// Virtual destructor.
00606   virtual ~TAO_No_Hint_Strategy (void);
00607 
00608   virtual int recover_key (const PortableServer::ObjectId &system_id,
00609                            PortableServer::ObjectId &user_id);
00610 
00611   virtual int bind (TAO_Active_Object_Map_Entry &entry);
00612 
00613   virtual int unbind (TAO_Active_Object_Map_Entry &entry);
00614 
00615   virtual int find (const PortableServer::ObjectId &system_id,
00616                     TAO_Active_Object_Map_Entry *&entry);
00617 
00618   virtual size_t hint_size (void);
00619 
00620   virtual int system_id (PortableServer::ObjectId_out system_id,
00621                          TAO_Active_Object_Map_Entry &entry);
00622 };
00623 
00624 TAO_END_VERSIONED_NAMESPACE_DECL
00625 
00626 #if defined (__ACE_INLINE__)
00627 # include "tao/PortableServer/Active_Object_Map.inl"
00628 #endif /* __ACE_INLINE__ */
00629 
00630 #include /**/ "ace/post.h"
00631 
00632 #endif /* TAO_ACTIVE_OBJECT_MAP_H */

Generated on Sun Jan 27 13:23:41 2008 for TAO_PortableServer by doxygen 1.3.6