Active_Object_Map.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Active_Object_Map.h
00006  *
00007  *  Active_Object_Map.h,v 1.14 2006/03/10 07:19:13 jtc Exp
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                          ACE_ENV_ARG_DECL);
00055 
00056   /// Destructor.
00057   ~TAO_Active_Object_Map (void);
00058 
00059   /// Must be used with UNIQUE_ID policy.
00060   int is_servant_in_map (PortableServer::Servant servant,
00061                          int &deactivated);
00062 
00063   /// Can be used with any policy.  With the SYSTEM_ID policy,
00064   /// user_id is actually system_id.
00065   int is_user_id_in_map (const PortableServer::ObjectId &user_id,
00066                          CORBA::Short priority,
00067                          int &priorities_match,
00068                          int &deactivated);
00069 
00070   /// Must be used with SYSTEM_ID policy.
00071   int bind_using_system_id_returning_system_id (PortableServer::Servant servant,
00072                                                 CORBA::Short priority,
00073                                                 PortableServer::ObjectId_out system_id);
00074 
00075   /// Must be used with SYSTEM_ID policy.
00076   int bind_using_system_id_returning_user_id (PortableServer::Servant servant,
00077                                               CORBA::Short priority,
00078                                               PortableServer::ObjectId_out user_id);
00079 
00080   /// Can be used with any policy.  With the SYSTEM_ID policy,
00081   /// user_id is actually system_id.
00082   int bind_using_user_id (PortableServer::Servant servant,
00083                           const PortableServer::ObjectId &user_id,
00084                           CORBA::Short priority);
00085 
00086   /// Can be used with any policy.  With the SYSTEM_ID policy,
00087   /// user_id is actually system_id.
00088   int find_system_id_using_user_id (const PortableServer::ObjectId &user_id,
00089                                     CORBA::Short priority,
00090                                     PortableServer::ObjectId_out system_id);
00091 
00092   /// Can be used with any policy.
00093   int rebind_using_user_id_and_system_id (PortableServer::Servant servant,
00094                                           const PortableServer::ObjectId &user_id,
00095                                           const PortableServer::ObjectId &system_id,
00096                                           TAO_Active_Object_Map_Entry *&entry);
00097 
00098   /// Can be used with any policy.  With the SYSTEM_ID policy,
00099   /// user_id is actually system_id.
00100   int unbind_using_user_id (const PortableServer::ObjectId &user_id);
00101 
00102   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00103   /// user_id is actually system_id.
00104   int find_user_id_using_servant (PortableServer::Servant servant,
00105                                   PortableServer::ObjectId_out user_id);
00106 
00107   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00108   /// user_id is actually system_id.
00109   int find_system_id_using_servant (PortableServer::Servant servant,
00110                                     PortableServer::ObjectId_out system_id,
00111                                     CORBA::Short &priority);
00112 
00113   /// Can be used with any policy. With the SYSTEM_ID policy,
00114   /// user_id is actually system_id.
00115   int find_servant_using_user_id (const PortableServer::ObjectId &user_id,
00116                                   PortableServer::Servant &servant);
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 #if (TAO_HAS_MINIMUM_POA_MAPS == 0)
00177   /// Id linear map.
00178   typedef ACE_Map_Manager_Adapter<
00179   PortableServer::ObjectId,
00180     TAO_Active_Object_Map_Entry *,
00181     TAO_Incremental_Key_Generator> user_id_linear_map;
00182 #endif /* TAO_HAS_MINIMUM_POA_MAPS == 0 */
00183 
00184   /// Id active map.
00185   typedef ACE_Active_Map_Manager_Adapter<
00186   PortableServer::ObjectId,
00187     TAO_Active_Object_Map_Entry *,
00188     TAO_Ignore_Original_Key_Adapter> user_id_active_map;
00189 
00190   /// Base class of the servant map.
00191   typedef ACE_Map<
00192   PortableServer::Servant,
00193     TAO_Active_Object_Map_Entry *> servant_map;
00194 
00195   /// Servant hash map.
00196   typedef ACE_Hash_Map_Manager_Ex_Adapter<
00197   PortableServer::Servant,
00198     TAO_Active_Object_Map_Entry *,
00199     TAO_Servant_Hash,
00200     ACE_Equal_To<PortableServer::Servant>,
00201     ACE_Noop_Key_Generator<PortableServer::Servant> > servant_hash_map;
00202 
00203 #if (TAO_HAS_MINIMUM_POA_MAPS == 0)
00204   /// Servant linear map.
00205   typedef ACE_Map_Manager_Adapter<
00206   PortableServer::Servant,
00207     TAO_Active_Object_Map_Entry *,
00208     ACE_Noop_Key_Generator<PortableServer::Servant> > servant_linear_map;
00209 #endif /* TAO_HAS_MINIMUM_POA_MAPS == 0 */
00210 
00211   /// Id map.
00212   user_id_map *user_id_map_;
00213 
00214   /// Servant map.
00215   servant_map *servant_map_;
00216 
00217   /// Id uniqueness strategy.
00218   TAO_Id_Uniqueness_Strategy *id_uniqueness_strategy_;
00219 
00220   /// Lifespan strategy.
00221   TAO_Lifespan_Strategy *lifespan_strategy_;
00222 
00223   /// Id assignment strategy.
00224   TAO_Id_Assignment_Strategy *id_assignment_strategy_;
00225 
00226   /// Id hint strategy.
00227   TAO_Id_Hint_Strategy *id_hint_strategy_;
00228 
00229   /// Flag to see if we are using active maps in this active object
00230   /// map.
00231   int using_active_maps_;
00232 
00233   /// Size of the system id produced by the map.
00234   static size_t system_id_size_;
00235 };
00236 
00237 /**
00238  * @class TAO_Id_Uniqueness_Strategy
00239  *
00240  * @brief Id uniqueness strategy.
00241  *
00242  * Strategy for implementing points of variation between the
00243  * UNIQUE_ID and the MULTIPLE_ID policies.
00244  */
00245 class TAO_Id_Uniqueness_Strategy
00246 {
00247 public:
00248   /// Virtual destructor.
00249   virtual ~TAO_Id_Uniqueness_Strategy (void);
00250 
00251   /// Must be used with UNIQUE_ID policy.
00252   virtual int is_servant_in_map (PortableServer::Servant servant,
00253                                  int &deactivated) = 0;
00254 
00255   /// Can be used with any policy.  With the SYSTEM_ID policy,
00256   /// <user_id> is actually <system_id>.
00257   virtual int unbind_using_user_id (const PortableServer::ObjectId &user_id) = 0;
00258 
00259   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00260   /// <user_id> is actually <system_id>.
00261   virtual int find_user_id_using_servant (PortableServer::Servant servant,
00262                                           PortableServer::ObjectId_out user_id) = 0;
00263 
00264   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00265   /// <user_id> is actually <system_id>.
00266   virtual int find_system_id_using_servant (PortableServer::Servant servant,
00267                                             PortableServer::ObjectId_out system_id,
00268                                             CORBA::Short &priority) = 0;
00269 
00270   /// Can be used with any policy.  With the SYSTEM_ID policy,
00271   /// <user_id> is actually <system_id>.
00272   virtual int bind_using_user_id (PortableServer::Servant servant,
00273                                   const PortableServer::ObjectId &user_id,
00274                                   CORBA::Short priority,
00275                                   TAO_Active_Object_Map_Entry *&entry) = 0;
00276 
00277   /// Are there any remaining activations of <servant> in the active
00278   /// object map?  Can be used with any policy.
00279   virtual CORBA::Boolean remaining_activations (PortableServer::Servant servant) = 0;
00280 
00281   /// Set the active map.
00282   void set_active_object_map (TAO_Active_Object_Map *active_object_map);
00283 
00284 protected:
00285 
00286   /// Pointer to the active map.
00287   TAO_Active_Object_Map *active_object_map_;
00288 };
00289 
00290 /**
00291  * @class TAO_Unique_Id_Strategy
00292  *
00293  * @brief Unique id strategy.
00294  *
00295  * Strategy for the UNIQUE_ID policy.
00296  */
00297 class TAO_Unique_Id_Strategy : public TAO_Id_Uniqueness_Strategy
00298 {
00299 public:
00300 
00301   /// Must be used with UNIQUE_ID policy.
00302   virtual int is_servant_in_map (PortableServer::Servant servant,
00303                                  int &deactivated);
00304 
00305   /// Can be used with any policy.  With the SYSTEM_ID policy,
00306   /// <user_id> is actually <system_id>.
00307   virtual int unbind_using_user_id (const PortableServer::ObjectId &user_id);
00308 
00309   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00310   /// <user_id> is actually <system_id>.
00311   virtual int find_user_id_using_servant (PortableServer::Servant servant,
00312                                           PortableServer::ObjectId_out user_id);
00313 
00314   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00315   /// <user_id> is actually <system_id>.
00316   virtual int find_system_id_using_servant (PortableServer::Servant servant,
00317                                             PortableServer::ObjectId_out system_id,
00318                                             CORBA::Short &priority);
00319 
00320   /// Can be used with any policy.  With the SYSTEM_ID policy,
00321   /// <user_id> is actually <system_id>.
00322   virtual int bind_using_user_id (PortableServer::Servant servant,
00323                                   const PortableServer::ObjectId &user_id,
00324                                   CORBA::Short priority,
00325                                   TAO_Active_Object_Map_Entry *&entry);
00326 
00327   /// Are there any remaining activations of <servant> in the active
00328   /// object map?  Can be used with any policy.
00329   virtual CORBA::Boolean remaining_activations (PortableServer::Servant servant);
00330 };
00331 
00332 /**
00333  * @class TAO_Multiple_Id_Strategy
00334  *
00335  * @brief Multiple id strategy.
00336  *
00337  * Strategy for the MULTIPLE_ID policy.
00338  */
00339 class TAO_Multiple_Id_Strategy : public TAO_Id_Uniqueness_Strategy
00340 {
00341 public:
00342 
00343   /// Must be used with UNIQUE_ID policy.
00344   virtual int is_servant_in_map (PortableServer::Servant servant,
00345                                  int &deactivated);
00346 
00347   /// Can be used with any policy.  With the SYSTEM_ID policy,
00348   /// <user_id> is actually <system_id>.
00349   virtual int unbind_using_user_id (const PortableServer::ObjectId &user_id);
00350 
00351   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00352   /// <user_id> is actually <system_id>.
00353   virtual int find_user_id_using_servant (PortableServer::Servant servant,
00354                                           PortableServer::ObjectId_out user_id);
00355 
00356   /// Must be used with UNIQUE_ID policy.  With the SYSTEM_ID policy,
00357   /// <user_id> is actually <system_id>.
00358   virtual int find_system_id_using_servant (PortableServer::Servant servant,
00359                                             PortableServer::ObjectId_out system_id,
00360                                             CORBA::Short &priority);
00361 
00362   /// Can be used with any policy.  With the SYSTEM_ID policy,
00363   /// <user_id> is actually <system_id>.
00364   virtual int bind_using_user_id (PortableServer::Servant servant,
00365                                   const PortableServer::ObjectId &user_id,
00366                                   CORBA::Short priority,
00367                                   TAO_Active_Object_Map_Entry *&entry);
00368 
00369   /// Are there any remaining activations of <servant> in the active
00370   /// object map?  Can be used with any policy.
00371   virtual CORBA::Boolean remaining_activations (PortableServer::Servant servant);
00372 };
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 /**
00422  * @class TAO_Persistent_Strategy
00423  *
00424  * @brief Persistent strategy.
00425  *
00426  * Strategy for the PERSISTENT policy.
00427  */
00428 class TAO_Persistent_Strategy : public TAO_Lifespan_Strategy
00429 {
00430 public:
00431   /// Can be used with any policy.
00432   virtual int find_servant_using_system_id_and_user_id (const PortableServer::ObjectId &system_id,
00433                                                         const PortableServer::ObjectId &user_id,
00434                                                         PortableServer::Servant &servant,
00435                                                         TAO_Active_Object_Map_Entry *&entry);
00436 
00437 };
00438 
00439 /**
00440  * @class TAO_Id_Assignment_Strategy
00441  *
00442  * @brief Id uniqueness strategy.
00443  *
00444  * Strategy for implementing points of variation between the
00445  * USER_ID and the SYSTEM_ID policies.
00446  */
00447 class TAO_Id_Assignment_Strategy
00448 {
00449 public:
00450   /// Virtual destructor.
00451   virtual ~TAO_Id_Assignment_Strategy (void);
00452 
00453   /// Must be used with SYSTEM_ID policy.
00454   virtual int bind_using_system_id (PortableServer::Servant servant,
00455                                     CORBA::Short priority,
00456                                     TAO_Active_Object_Map_Entry *&entry) = 0;
00457 
00458   /// Set the active map.
00459   void set_active_object_map (TAO_Active_Object_Map *active_object_map);
00460 
00461 protected:
00462 
00463   /// Pointer to the active map.
00464   TAO_Active_Object_Map *active_object_map_;
00465 };
00466 
00467 /**
00468  * @class TAO_User_Id_Strategy
00469  *
00470  * @brief User id strategy.
00471  *
00472  * Strategy for the USER_ID policy.
00473  */
00474 class TAO_User_Id_Strategy : public TAO_Id_Assignment_Strategy
00475 {
00476 public:
00477   /// Must be used with SYSTEM_ID policy.
00478   virtual int bind_using_system_id (PortableServer::Servant servant,
00479                                     CORBA::Short priority,
00480                                     TAO_Active_Object_Map_Entry *&entry);
00481 };
00482 
00483 /**
00484  * @class TAO_System_Id_With_Unique_Id_Strategy
00485  *
00486  * @brief System id strategy.
00487  *
00488  * Strategy for the SYSTEM_ID policy (with UNIQUE_ID policy).
00489  */
00490 class TAO_System_Id_With_Unique_Id_Strategy : public TAO_Id_Assignment_Strategy
00491 {
00492 public:
00493   /// Must be used with SYSTEM_ID policy.
00494   virtual int bind_using_system_id (PortableServer::Servant servant,
00495                                     CORBA::Short priority,
00496                                     TAO_Active_Object_Map_Entry *&entry);
00497 };
00498 
00499 /**
00500  * @class TAO_System_Id_With_Multiple_Id_Strategy
00501  *
00502  * @brief System id strategy.
00503  *
00504  * Strategy for the SYSTEM_ID policy (with MULTIPLE_ID policy).
00505  */
00506 class TAO_System_Id_With_Multiple_Id_Strategy : public TAO_Id_Assignment_Strategy
00507 {
00508 public:
00509   /// Must be used with SYSTEM_ID policy.
00510   virtual int bind_using_system_id (PortableServer::Servant servant,
00511                                     CORBA::Short priority,
00512                                     TAO_Active_Object_Map_Entry *&entry);
00513 };
00514 
00515 /**
00516  * @class TAO_Id_Hint_Strategy
00517  *
00518  * @brief Id uniqueness strategy.
00519  *
00520  * Strategy for implementing points of variation between the
00521  * active hint and the no hint policies.
00522  */
00523 class TAO_Id_Hint_Strategy
00524 {
00525 public:
00526   /// Virtual destructor.
00527   virtual ~TAO_Id_Hint_Strategy (void);
00528 
00529   /// Find the user id from the system id.
00530   virtual int recover_key (const PortableServer::ObjectId &system_id,
00531                            PortableServer::ObjectId &user_id) = 0;
00532 
00533   /// Add to map.
00534   virtual int bind (TAO_Active_Object_Map_Entry &entry) = 0;
00535 
00536   /// Remove from map.
00537   virtual int unbind (TAO_Active_Object_Map_Entry &entry) = 0;
00538 
00539   /// Find system id.
00540   virtual int find (const PortableServer::ObjectId &system_id,
00541                     TAO_Active_Object_Map_Entry *&entry) = 0;
00542 
00543   /// How big is the hint generated by this strategy?
00544   virtual size_t hint_size (void) = 0;
00545 
00546   /// Get the system id associated with this entry.
00547   virtual int system_id (PortableServer::ObjectId_out system_id,
00548                          TAO_Active_Object_Map_Entry &entry) = 0;
00549 };
00550 
00551 /**
00552  * @class TAO_Active_Hint_Strategy
00553  *
00554  * @brief Active hint strategy.
00555  *
00556  * Strategy for adding active hints to ids.
00557  */
00558 class TAO_Active_Hint_Strategy : public TAO_Id_Hint_Strategy
00559 {
00560 public:
00561   TAO_Active_Hint_Strategy (CORBA::ULong map_size);
00562 
00563   /// Virtual destructor.
00564   virtual ~TAO_Active_Hint_Strategy (void);
00565 
00566   virtual int recover_key (const PortableServer::ObjectId &system_id,
00567                            PortableServer::ObjectId &user_id);
00568 
00569   virtual int bind (TAO_Active_Object_Map_Entry &entry);
00570 
00571   virtual int unbind (TAO_Active_Object_Map_Entry &entry);
00572 
00573   virtual int find (const PortableServer::ObjectId &system_id,
00574                     TAO_Active_Object_Map_Entry *&entry);
00575 
00576   virtual size_t hint_size (void);
00577 
00578   virtual int system_id (PortableServer::ObjectId_out system_id,
00579                          TAO_Active_Object_Map_Entry &entry);
00580 
00581   typedef ACE_Active_Map_Manager_Adapter<
00582   PortableServer::ObjectId,
00583     TAO_Active_Object_Map_Entry *,
00584     TAO_Preserve_Original_Key_Adapter> system_id_map;
00585 
00586   system_id_map system_id_map_;
00587 };
00588 
00589 /**
00590  * @class TAO_No_Hint_Strategy
00591  *
00592  * @brief No hint strategy.
00593  *
00594  * Strategy for not adding active hints to ids.
00595  */
00596 class TAO_No_Hint_Strategy : public TAO_Id_Hint_Strategy
00597 {
00598 public:
00599   /// Virtual destructor.
00600   virtual ~TAO_No_Hint_Strategy (void);
00601 
00602   virtual int recover_key (const PortableServer::ObjectId &system_id,
00603                            PortableServer::ObjectId &user_id);
00604 
00605   virtual int bind (TAO_Active_Object_Map_Entry &entry);
00606 
00607   virtual int unbind (TAO_Active_Object_Map_Entry &entry);
00608 
00609   virtual int find (const PortableServer::ObjectId &system_id,
00610                     TAO_Active_Object_Map_Entry *&entry);
00611 
00612   virtual size_t hint_size (void);
00613 
00614   virtual int system_id (PortableServer::ObjectId_out system_id,
00615                          TAO_Active_Object_Map_Entry &entry);
00616 };
00617 
00618 TAO_END_VERSIONED_NAMESPACE_DECL
00619 
00620 #if defined (__ACE_INLINE__)
00621 # include "tao/PortableServer/Active_Object_Map.i"
00622 #endif /* __ACE_INLINE__ */
00623 
00624 #include /**/ "ace/post.h"
00625 
00626 #endif /* TAO_ACTIVE_OBJECT_MAP_H */

Generated on Thu Nov 9 12:40:37 2006 for TAO_PortableServer by doxygen 1.3.6