summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp
index 29d142fc0c4..c5923eda2d4 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp
@@ -94,11 +94,11 @@ TAO_Notify_SupplierAdmin::destroy (ACE_ENV_SINGLE_ARG_DECL)
ACE_CHECK;
}
-TAO_NOTIFY::Topology_Object*
+TAO_Notify::Topology_Object*
TAO_Notify_SupplierAdmin::load_child (const ACE_CString &type,
- CORBA::Long id, const TAO_NOTIFY::NVPList& attrs ACE_ENV_ARG_DECL)
+ CORBA::Long id, const TAO_Notify::NVPList& attrs ACE_ENV_ARG_DECL)
{
- TAO_NOTIFY::Topology_Object* result = this;
+ TAO_Notify::Topology_Object* result = this;
if (type == "proxy_push_consumer")
{
if (DEBUG_LEVEL) ACE_DEBUG ((LM_DEBUG,
@@ -134,11 +134,11 @@ TAO_Notify_SupplierAdmin::load_child (const ACE_CString &type,
return result;
}
-TAO_NOTIFY::Topology_Object*
+TAO_Notify::Topology_Object*
TAO_Notify_SupplierAdmin::load_proxy (
CORBA::Long id,
CosNotifyChannelAdmin::ClientType ctype,
- const TAO_NOTIFY::NVPList& attrs ACE_ENV_ARG_DECL)
+ const TAO_Notify::NVPList& attrs ACE_ENV_ARG_DECL)
{
TAO_Notify_Builder* bld = TAO_Notify_PROPERTIES::instance()->builder();
TAO_Notify_ProxyConsumer * proxy =
@@ -409,6 +409,23 @@ TAO_Notify_SupplierAdmin::obtain_notification_pull_consumer (CosNotifyChannelAdm
ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosNotifyChannelAdmin::ProxyConsumer::_nil ());
}
+TAO_Notify_ProxyConsumer *
+TAO_Notify_SupplierAdmin::find_proxy_consumer (
+ TAO_Notify::IdVec & id_path,
+ size_t position
+ ACE_ENV_ARG_DECL)
+{
+ TAO_Notify_ProxyConsumer * result = 0;
+ size_t path_size = id_path.size ();
+ if (position < path_size)
+ {
+ TAO_Notify_ProxyConsumer_Find_Worker find_worker;
+ TAO_Notify_Proxy * proxy = find_worker.find (id_path[position], *this->proxy_container_ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+ result = dynamic_cast <TAO_Notify_ProxyConsumer *> (proxy);
+ }
+ return result;
+}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)