summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableServer
diff options
context:
space:
mode:
authormhengstmengel <mhengstmengel@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-08-18 14:09:50 +0000
committermhengstmengel <mhengstmengel@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2010-08-18 14:09:50 +0000
commit90547fe38bddaa19cbd3d9116fbca1b7ff4daa63 (patch)
treed832cf52c1fa692313e14e41cff95d19bf316c2f /TAO/tao/PortableServer
parent58a0d0a2b1f2d7b2b607e7e6fe5853f4b8210c56 (diff)
downloadATCD-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')
-rw-r--r--TAO/tao/PortableServer/Root_POA.cpp8
-rw-r--r--TAO/tao/PortableServer/Root_POA.h5
-rw-r--r--TAO/tao/PortableServer/ServantRetentionStrategy.h3
-rw-r--r--TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.cpp5
-rw-r--r--TAO/tao/PortableServer/ServantRetentionStrategyNonRetain.h2
-rw-r--r--TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp8
-rw-r--r--TAO/tao/PortableServer/ServantRetentionStrategyRetain.h2
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_;