diff options
author | mhengstmengel <mhengstmengel@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-08-18 14:09:50 +0000 |
---|---|---|
committer | mhengstmengel <mhengstmengel@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-08-18 14:09:50 +0000 |
commit | 90547fe38bddaa19cbd3d9116fbca1b7ff4daa63 (patch) | |
tree | d832cf52c1fa692313e14e41cff95d19bf316c2f /TAO/tao/PortableServer | |
parent | 58a0d0a2b1f2d7b2b607e7e6fe5853f4b8210c56 (diff) | |
download | ATCD-90547fe38bddaa19cbd3d9116fbca1b7ff4daa63.tar.gz |
Wed Aug 18 14:05:20 UTC 2010 Marijke Hengstmengel <mhengstmengel@remedy.nl>
* tao/PortableServer/Root_POA.cpp:
* tao/PortableServer/Root_POA.h:
* tao/PortableServer/ServantRetentionStrategy.h:
* tao/PortableServer/ServantRetentionStrategyNonRetain.cpp:
* tao/PortableServer/ServantRetentionStrategyNonRetain.h:
* tao/PortableServer/ServantRetentionStrategyRetain.cpp:
* tao/PortableServer/ServantRetentionStrategyRetain.h:
Fix bugzilla 3654: Add Active Object Map accessor patches
Diffstat (limited to 'TAO/tao/PortableServer')
7 files changed, 32 insertions, 1 deletions
diff --git a/TAO/tao/PortableServer/Root_POA.cpp b/TAO/tao/PortableServer/Root_POA.cpp index 2dbda275c25..c852a439880 100644 --- a/TAO/tao/PortableServer/Root_POA.cpp +++ b/TAO/tao/PortableServer/Root_POA.cpp @@ -2725,4 +2725,12 @@ TAO_Root_POA::servant_deactivated_hook (PortableServer::Servant, { } +TAO_Active_Object_Map * +TAO_Root_POA::get_active_object_map() const +{ + return this->active_policy_strategies_.servant_retention_strategy()-> + get_active_object_map(); +} + + TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/PortableServer/Root_POA.h b/TAO/tao/PortableServer/Root_POA.h index 0b0603d7064..e7868592d54 100644 --- a/TAO/tao/PortableServer/Root_POA.h +++ b/TAO/tao/PortableServer/Root_POA.h @@ -78,6 +78,7 @@ class TAO_Network_Priority_Hook; class TAO_Acceptor_Registry; class TAO_IORInfo; class TAO_Regular_POA; +class TAO_Active_Object_Map; namespace PortableInterceptor { @@ -126,6 +127,10 @@ public: typedef ACE_CString String; + /// @todo Temporarily for debugging, useful for debugging and status retrieval, + /// could be removed with future rework of the AOM. + TAO_Active_Object_Map * get_active_object_map() const; + #if !defined (CORBA_E_MICRO) PortableServer::POA_ptr create_POA ( const char *adapter_name, diff --git a/TAO/tao/PortableServer/ServantRetentionStrategy.h b/TAO/tao/PortableServer/ServantRetentionStrategy.h index 4a2b054bc47..8f72dc9104e 100644 --- a/TAO/tao/PortableServer/ServantRetentionStrategy.h +++ b/TAO/tao/PortableServer/ServantRetentionStrategy.h @@ -115,6 +115,9 @@ namespace TAO PortableServer::Servant servant) = 0; virtual ::PortableServer::ServantRetentionPolicyValue type() const = 0; + + virtual TAO_Active_Object_Map * get_active_object_map() const = 0; + }; } } diff --git a/TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp b/TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp index 072822e94cc..08238836769 100644 --- a/TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp +++ b/TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp @@ -283,6 +283,11 @@ namespace TAO return ::PortableServer::NON_RETAIN; } + TAO_Active_Object_Map * + ServantRetentionStrategyNonRetain::get_active_object_map() const + { + return 0; + } } } diff --git a/TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.h b/TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.h index b19bf30ed54..bc4a2e1d50b 100644 --- a/TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.h +++ b/TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.h @@ -120,6 +120,8 @@ namespace TAO virtual ::PortableServer::ServantRetentionPolicyValue type() const; + virtual TAO_Active_Object_Map * get_active_object_map() const; + protected: TAO_Root_POA *poa_; }; diff --git a/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp b/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp index 0fc827b82d5..342e6c29689 100644 --- a/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp +++ b/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp @@ -61,7 +61,7 @@ namespace TAO name_str += poa->orb_core ().orbid (); name_str += '_'; name_str += poa->the_name (); - + active_object_map->monitor_->name (name_str.c_str ()); active_object_map->monitor_->add_to_registry (); #endif /* TAO_HAS_MONITOR_POINTS */ @@ -977,6 +977,12 @@ namespace TAO return ::PortableServer::RETAIN; } + TAO_Active_Object_Map * + ServantRetentionStrategyRetain::get_active_object_map() const + { + return this->active_object_map_.get(); + } + } } diff --git a/TAO/tao/PortableServer/ServantRetentionStrategyRetain.h b/TAO/tao/PortableServer/ServantRetentionStrategyRetain.h index 9782c6ecfea..fa279f3c267 100644 --- a/TAO/tao/PortableServer/ServantRetentionStrategyRetain.h +++ b/TAO/tao/PortableServer/ServantRetentionStrategyRetain.h @@ -138,6 +138,8 @@ namespace TAO virtual int unbind_using_user_id ( const PortableServer::ObjectId &user_id); + TAO_Active_Object_Map * get_active_object_map() const; + private: auto_ptr<TAO_Active_Object_Map> active_object_map_; CORBA::ULong waiting_servant_deactivation_; |