summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TAO/ChangeLog228
-rw-r--r--TAO/orbsvcs/Notify_Service/Makefile1297
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Server.cpp2
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Service.cpp39
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Service.h11
-rw-r--r--TAO/orbsvcs/orbsvcs/CosNotification.bor6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Admin.cpp68
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Admin.h46
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Admin.inl6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/AdminProperties.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.cpp7
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.cpp11
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp7
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.h5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp11
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.h2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/PushConsumer.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Any/PushSupplier.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Builder.cpp653
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Builder.h104
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Consumer.cpp6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Consumer.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp125
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.h26
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Consumer_Map.h36
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Container.cpp51
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Container.h71
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Container_T.cpp51
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Container_T.h59
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Container_T.inl26
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp (renamed from TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp)178
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.h (renamed from TAO/orbsvcs/orbsvcs/Notify/Notify_Service.h)38
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl (renamed from TAO/orbsvcs/orbsvcs/Notify/Container.inl)0
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Default_Factory.cpp (renamed from TAO/orbsvcs/orbsvcs/Notify/Factory.cpp)265
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Default_Factory.h101
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Default_Factory.inl (renamed from TAO/orbsvcs/orbsvcs/Notify/Factory.inl)0
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Destroy_Callback.h38
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp208
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.h30
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp14
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/EventChannel.cpp336
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/EventChannel.h57
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp202
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.h39
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Event_Manager.cpp44
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Event_Manager.h10
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Factory.h81
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.cpp74
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.h8
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/FilterFactory.h5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp47
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.h72
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.inl8
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ID_Factory.h6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ID_Factory.inl2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request.h2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp12
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp14
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.h6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp452
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h318
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Notify_Service.inl1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Object.cpp171
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Object.h84
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Object.inl6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Object_T.cpp42
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Object_T.h63
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Object_T.inl1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Peer.cpp5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Peer.h7
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Proxy.cpp24
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Proxy.h16
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp42
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.h17
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.inl6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp3
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.cpp40
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.h18
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.inl6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp3
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Proxy_T.cpp25
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/QoSProperties.cpp18
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/QoSProperties.h7
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/README2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.cpp1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.h5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Refcountable.cpp11
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Refcountable.h15
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp37
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.h68
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl9
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp7
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp11
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Service.h16
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp11
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp11
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h3
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Supplier.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp136
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.h11
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Supplier_Map.h35
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp1
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.h5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.h4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Types.cpp17
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Types.h70
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Types.inl1
128 files changed, 3083 insertions, 3716 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index b51a597dc2b..9d7d0270e6e 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,231 @@
+Thu Feb 27 09:09:44 2003 Pradeep Gore <pradeep@oomworks.com>
+
+ Summary of changes due to code review:
+ 1. Removed dependency on Types.h and Destroy_Callback.h
+ 2. Simplify the TAO_NS_Object class by moving functionality from Object_T and Container_T classes.
+ 3. Made the Filter and FilterFactory interface methods thread safe.
+
+ * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h:
+ * orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp:
+ Removed old file.
+
+ * orbsvcs/orbsvcs/Notify/Consumer_Map.h:
+ * orbsvcs/orbsvcs/Notify/Supplier_Map.h:
+ Moved the Consumer and Supplier Map definitions to seperate files.
+
+ * orbsvcs/orbsvcs/Notify/Notify_Service.cpp:
+ * orbsvcs/orbsvcs/Notify/Notify_Service.h:
+ * orbsvcs/orbsvcs/Notify/Notify_Service.inl:
+ * orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp:
+ * orbsvcs/orbsvcs/Notify/CosNotify_Service.h:
+ * orbsvcs/orbsvcs/Notify/CosNotify_Service.inl:
+ Renamed the confusing file name - Notify_Service to CosNotify_Service.
+
+ * orbsvcs/orbsvcs/Notify/Factory.h:
+ Converted this into an abstract service object interface.
+
+ * orbsvcs/orbsvcs/Notify/Factory.cpp:
+ * orbsvcs/orbsvcs/Notify/Factory.inl:
+ * orbsvcs/orbsvcs/Notify/Default_Factory.cpp:
+ * orbsvcs/orbsvcs/Notify/Default_Factory.h:
+ * orbsvcs/orbsvcs/Notify/Default_Factory.inl:
+ + Moved old Factory.* to the Default_* files.
+ + Introduced a factory template to simplify creation of the various Collections.
+
+ * orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp:
+ * orbsvcs/orbsvcs/Notify/Find_Worker_T.h:
+ * orbsvcs/orbsvcs/Notify/Find_Worker_T.inl:
+ An iterator that finds the object given its ID in a collection.
+
+ * orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp:
+ * orbsvcs/orbsvcs/Notify/Seq_Worker_T.h:
+ * orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl:
+ A Helper class that creates a sequence id ID's given the colleciton.
+
+ * orbsvcs/orbsvcs/Notify/Destroy_Callback.h:
+ * orbsvcs/orbsvcs/Notify/Refcountable.cpp:
+ * orbsvcs/orbsvcs/Notify/Refcountable.h:
+ Removed the Destroy_Callback interface. We instead simplify the mechanism by calling the <release>
+ method when the reference count falls to 0.
+
+ * orbsvcs/orbsvcs/Notify/Container.cpp:
+ * orbsvcs/orbsvcs/Notify/Container.h:
+ * orbsvcs/orbsvcs/Notify/Container.inl:
+ * orbsvcs/orbsvcs/Notify/Object_T.cpp:
+ * orbsvcs/orbsvcs/Notify/Object_T.h:
+ * orbsvcs/orbsvcs/Notify/Object_T.inl:
+ Removed these files to simplify the base classes for Notify Objects.
+
+ * orbsvcs/orbsvcs/Notify/Object.cpp:
+ * orbsvcs/orbsvcs/Notify/Object.h:
+ * orbsvcs/orbsvcs/Notify/Object.inl:
+ Moved all Container functionality to the Object class.
+
+ * orbsvcs/orbsvcs/Notify/Container_T.cpp:
+ * orbsvcs/orbsvcs/Notify/Container_T.h:
+ * orbsvcs/orbsvcs/Notify/Container_T.inl:
+ The Container_T template is a wrapper on the Collection class.
+
+ * orbsvcs/orbsvcs/Notify/Admin.cpp:
+ * orbsvcs/orbsvcs/Notify/Admin.h:
+ * orbsvcs/orbsvcs/Notify/Admin.inl:
+ Changes to adapt to new base class. removed the enum to distinguish the type of Admin.
+
+ * orbsvcs/orbsvcs/Notify/Types.h:
+ * orbsvcs/orbsvcs/Notify/Types.cpp:
+ * orbsvcs/orbsvcs/Notify/Types.inl:
+ Removed the global type defines file.
+
+ * orbsvcs/orbsvcs/Notify/AdminProperties.h:
+ Removed dependency on Types.h
+
+ * orbsvcs/orbsvcs/Notify/Builder.cpp:
+ * orbsvcs/orbsvcs/Notify/Builder.h:
+ Simplified the implementation by moving most of the Object initalization
+ into the TAO_NS_Object::init method.
+ Implemented a TAO_NS_Proxy_Builder_T template class.
+
+ * orbsvcs/orbsvcs/Notify/Consumer.cpp:
+ * orbsvcs/orbsvcs/Notify/Consumer.h:
+ Removed unnecessary file dependencies.
+
+ * orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp:
+ * orbsvcs/orbsvcs/Notify/ConsumerAdmin.h:
+ Removed unnecessary file dependencies. Uses the Seq_Worker and Find_Worker templates.
+
+ * orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp:
+ * orbsvcs/orbsvcs/Notify/ETCL_Filter.h:
+ * orbsvcs/orbsvcs/Notify/FilterAdmin.cpp:
+ * orbsvcs/orbsvcs/Notify/FilterAdmin.h:
+ Serialize interface implementation methods to make them thread-safe.
+
+ * orbsvcs/orbsvcs/Notify/FilterFactory.h:
+ * orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp:
+ * orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h:
+ The POA in which the Filters are created is supplied in the <create> method.
+
+ * orbsvcs/orbsvcs/Notify/EventChannel.cpp:
+ * orbsvcs/orbsvcs/Notify/EventChannel.h:
+ The ConsumerAdmin and SupplierAdmin are maintained in seperate Containers.
+ Added additional <remove> methods. Implemented <init> method.
+
+ * orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp:
+ * orbsvcs/orbsvcs/Notify/EventChannelFactory.h:
+ Changes to <init> method - Initializes data members.
+
+ * orbsvcs/orbsvcs/Notify/Event_Manager.cpp:
+ * orbsvcs/orbsvcs/Notify/Event_Manager.h:
+ * orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h:
+ * orbsvcs/orbsvcs/Notify/Event_Map_T.h:
+ Removed dependency on Types.h
+
+ * orbsvcs/orbsvcs/Notify/ID_Factory.h:
+ * orbsvcs/orbsvcs/Notify/ID_Factory.inl:
+ Use TAO_NS_Object::ID as the ID type.
+
+ * orbsvcs/orbsvcs/Notify/Method_Request.h:
+ Removed dependency on Types.h and Refcountable.h
+
+ * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp:
+ * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h:
+ Modified call to <check_filters>.
+
+ * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp:
+ * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h:
+ Removed unnecessary file dependencies.
+
+ * orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp:
+ * orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h:
+ Modified call to <check_filters>.
+
+ * orbsvcs/orbsvcs/Notify/Method_Request_Updates.h:
+ Removed dependency on Types.h.
+
+ * orbsvcs/orbsvcs/Notify/Peer.cpp:
+ * orbsvcs/orbsvcs/Notify/Peer.h:
+ Removed unnecessary file dependencies.
+
+ * orbsvcs/orbsvcs/Notify/Proxy.cpp:
+ * orbsvcs/orbsvcs/Notify/Proxy.h:
+ Modified <check_filters> signature.
+
+ * orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp:
+ * orbsvcs/orbsvcs/Notify/ProxyConsumer.h:
+ * orbsvcs/orbsvcs/Notify/ProxyConsumer.inl:
+ * orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp:
+ * orbsvcs/orbsvcs/Notify/ProxySupplier.cpp:
+ * orbsvcs/orbsvcs/Notify/ProxySupplier.h:
+ * orbsvcs/orbsvcs/Notify/ProxySupplier.inl:
+ * orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp:
+ Removed unnecessary file dependencies.
+
+ * orbsvcs/orbsvcs/Notify/Proxy_T.cpp:
+ Seralizw access to public interface method implementation.
+
+ * orbsvcs/orbsvcs/Notify/QoSProperties.cpp:
+ * orbsvcs/orbsvcs/Notify/QoSProperties.h:
+ Added error checks to the <copy> and <transfer> methods.
+
+ * orbsvcs/orbsvcs/Notify/Reactive_Task.cpp:
+ * orbsvcs/orbsvcs/Notify/Reactive_Task.h:
+ Removed dependency on <destroy_callback>.
+
+ * orbsvcs/orbsvcs/Notify/Service.h:
+ Added definitions of the generic Service Object and the specific Cos and RT Notification Service names.
+
+ * orbsvcs/orbsvcs/Notify/Supplier.cpp:
+ Removed unnecessary file dependencies.
+
+ * orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp:
+ * orbsvcs/orbsvcs/Notify/SupplierAdmin.h:
+ Changed implementation to use the new TAO_NS_Object , Builder and Find_Worker_T.
+
+ * orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp:
+ * orbsvcs/orbsvcs/Notify/ThreadPool_Task.h:
+ * orbsvcs/orbsvcs/Notify/Timer_Queue.cpp:
+ * orbsvcs/orbsvcs/Notify/Timer_Queue.h:
+ * orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp:
+ * orbsvcs/orbsvcs/Notify/Timer_Reactor.h:
+ Removed dependency on Destroy_Callback interface.
+
+ * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.cpp:
+ * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h:
+ * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.cpp:
+ * orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h:
+ * orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp:
+ * orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.h:
+ * orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp:
+ * orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.h:
+ * orbsvcs/orbsvcs/Notify/Any/PushConsumer.h:
+ * orbsvcs/orbsvcs/Notify/Any/PushSupplier.h:
+ * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp:
+ * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h:
+ * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp:
+ * orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h:
+ * orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h:
+ * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp:
+ * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h:
+ * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp:
+ * orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h:
+ * orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h:
+ * orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h:
+ Removed dependency on Destroy_Callback interface.
+
+ * orbsvcs/Notify_Service/Notify_Service.h:
+ * orbsvcs/Notify_Service/Notify_Server.cpp:
+ Renamed local TAO_Notify_Service class to TAO_Notify_Service_Driver class to void clash with the
+ Service name.
+ Forward declare TAO_Notify_Service.
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ Look for the generic Notify Service. If that is not found then look for the default
+ service object "Notify_Default_Event_Manager_Objects_Factory".
+
+ * orbsvcs/orbsvcs/CosNotification.dsp:
+ * orbsvcs/orbsvcs/CosNotification.bor:
+ * orbsvcs/orbsvcs/Makefile.CosNotification:
+ Updated.
+
Wed Feb 26 10:28:28 2003 Ossama Othman <ossama@uci.edu>
* tao/RTCORBA/RTCORBAC.cpp:
diff --git a/TAO/orbsvcs/Notify_Service/Makefile b/TAO/orbsvcs/Notify_Service/Makefile
index 0ea64b9914a..9fc1b64b549 100644
--- a/TAO/orbsvcs/Notify_Service/Makefile
+++ b/TAO/orbsvcs/Notify_Service/Makefile
@@ -52,679 +52,632 @@ Notify_Service: $(addprefix $(VDIR),$(NOTIFY_OBJS))
.obj/Notify_Server.o .obj/Notify_Server.so .shobj/Notify_Server.o .shobj/Notify_Server.so: Notify_Server.cpp Notify_Service.h \
- $(ACE_ROOT)/ace/Task.h $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/DLL.h \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Thread_Exit.h \
- $(ACE_ROOT)/ace/Thread_Control.h \
- $(ACE_ROOT)/ace/Thread_Control.inl \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Framework_Component.h \
- $(ACE_ROOT)/ace/Framework_Component.inl \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Framework_Component_T.h \
- $(ACE_ROOT)/ace/Framework_Component_T.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Notification_Strategy.h \
- $(ACE_ROOT)/ace/Notification_Strategy.inl \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/orbconf.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Policy_ForwardC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(ACE_ROOT)/ace/Exception_Macros.h \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/Policy_ForwardC.i \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/Exception.h \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/objectid.h \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/AbstractBase.h \
- $(TAO_ROOT)/tao/AbstractBase.inl \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/WrongTransactionC.i \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \
- $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \
- $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \
- $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Notify/notify_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEvent/event_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \
- ../orbsvcs/Notify/Service.h ../orbsvcs/Notify/notify_export.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(ACE_ROOT)/ace/Atomic_Op.h \
- $(ACE_ROOT)/ace/Atomic_Op_T.h \
- $(ACE_ROOT)/ace/Atomic_Op_T.i \
- $(ACE_ROOT)/ace/Atomic_Op_T.cpp \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS.i \
- ../orbsvcs/Notify/CosNotify_Initializer.h
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/pre.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/ACE_export.h \
+ $(ACE_ROOT)/ace/post.h \
+ $(ACE_ROOT)/ace/ace_wchar.h \
+ $(ACE_ROOT)/ace/ace_wchar.inl \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/OS_Dirent.h \
+ $(ACE_ROOT)/ace/OS_Export.h \
+ $(ACE_ROOT)/ace/OS_Errno.h \
+ $(ACE_ROOT)/ace/OS_Errno.inl \
+ $(ACE_ROOT)/ace/OS_Dirent.inl \
+ $(ACE_ROOT)/ace/OS_String.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/OS_String.inl \
+ $(ACE_ROOT)/ace/OS_Memory.h \
+ $(ACE_ROOT)/ace/OS_Memory.inl \
+ $(ACE_ROOT)/ace/OS_TLI.h \
+ $(ACE_ROOT)/ace/OS_TLI.inl \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/Time_Value.inl \
+ $(ACE_ROOT)/ace/Default_Constants.h \
+ $(ACE_ROOT)/ace/Global_Macros.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/DLL.h \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Thread_Exit.h \
+ $(ACE_ROOT)/ace/Thread_Control.h \
+ $(ACE_ROOT)/ace/Thread_Control.inl \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Framework_Component.h \
+ $(ACE_ROOT)/ace/Framework_Component.inl \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Flag_Manip.h \
+ $(ACE_ROOT)/ace/Flag_Manip.i \
+ $(ACE_ROOT)/ace/Handle_Ops.h \
+ $(ACE_ROOT)/ace/Handle_Ops.i \
+ $(ACE_ROOT)/ace/Lib_Find.h \
+ $(ACE_ROOT)/ace/Lib_Find.i \
+ $(ACE_ROOT)/ace/Init_ACE.h \
+ $(ACE_ROOT)/ace/Init_ACE.i \
+ $(ACE_ROOT)/ace/Sock_Connect.h \
+ $(ACE_ROOT)/ace/Sock_Connect.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Framework_Component_T.h \
+ $(ACE_ROOT)/ace/Framework_Component_T.inl \
+ $(ACE_ROOT)/ace/Framework_Component_T.cpp \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Notification_Strategy.h \
+ $(ACE_ROOT)/ace/Notification_Strategy.inl \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Task_T.cpp \
+ $(ACE_ROOT)/ace/Module.h \
+ $(ACE_ROOT)/ace/Module.i \
+ $(ACE_ROOT)/ace/Module.cpp \
+ $(ACE_ROOT)/ace/Stream_Modules.h \
+ $(ACE_ROOT)/ace/Stream_Modules.cpp \
+ $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
+ $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/CDR_Base.inl \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(ACE_ROOT)/ace/Exception_Macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/varbase.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Policy_ForwardC.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/String_Base.h \
+ $(ACE_ROOT)/ace/String_Base_Const.h \
+ $(ACE_ROOT)/ace/String_Base.i \
+ $(ACE_ROOT)/ace/String_Base.cpp \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_Allocator.h \
+ $(ACE_ROOT)/ace/Malloc_Allocator.i \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/Policy_ForwardC.i \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
+ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
+ $(TAO_ROOT)/tao/Encodable.h \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/LocalObject.h \
+ $(TAO_ROOT)/tao/LocalObject.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/OctetSeqC.h \
+ $(TAO_ROOT)/tao/OctetSeqC.i \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/CORBA_String.h \
+ $(TAO_ROOT)/tao/CORBA_String.inl \
+ $(TAO_ROOT)/tao/objectid.h \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/AbstractBase.h \
+ $(TAO_ROOT)/tao/AbstractBase.inl \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/WrongTransactionC.i \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/StringSeqC.h \
+ $(TAO_ROOT)/tao/StringSeqC.i \
+ $(TAO_ROOT)/tao/PortableInterceptorC.h \
+ $(TAO_ROOT)/tao/DynamicC.h \
+ $(TAO_ROOT)/tao/DynamicC.i \
+ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \
+ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \
+ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \
+ $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/PortableInterceptorC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Notify/notify_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \
+ ../orbsvcs/Notify/CosNotify_Initializer.h \
+ ../orbsvcs/Notify/notify_export.h
.obj/Notify_Service.o .obj/Notify_Service.so .shobj/Notify_Service.o .shobj/Notify_Service.so: Notify_Service.cpp Notify_Service.h \
- $(ACE_ROOT)/ace/Task.h $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Time_Value.inl \
- $(ACE_ROOT)/ace/Default_Constants.h \
- $(ACE_ROOT)/ace/Global_Macros.h \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/DLL.h \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Thread_Exit.h \
- $(ACE_ROOT)/ace/Thread_Control.h \
- $(ACE_ROOT)/ace/Thread_Control.inl \
- $(ACE_ROOT)/ace/Synch.h $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Object_Manager.h \
- $(ACE_ROOT)/ace/Object_Manager.i \
- $(ACE_ROOT)/ace/Managed_Object.h \
- $(ACE_ROOT)/ace/Managed_Object.i \
- $(ACE_ROOT)/ace/Managed_Object.cpp \
- $(ACE_ROOT)/ace/Framework_Component.h \
- $(ACE_ROOT)/ace/Framework_Component.inl \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Framework_Component_T.h \
- $(ACE_ROOT)/ace/Framework_Component_T.inl \
- $(ACE_ROOT)/ace/Framework_Component_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Task.i $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Notification_Strategy.h \
- $(ACE_ROOT)/ace/Notification_Strategy.inl \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(ACE_ROOT)/ace/Task_T.i \
- $(ACE_ROOT)/ace/Task_T.cpp \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Module.i \
- $(ACE_ROOT)/ace/Module.cpp \
- $(ACE_ROOT)/ace/Stream_Modules.h \
- $(ACE_ROOT)/ace/Stream_Modules.cpp \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/orbconf.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Policy_ForwardC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(ACE_ROOT)/ace/Exception_Macros.h \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/String_Base.h \
- $(ACE_ROOT)/ace/String_Base_Const.h \
- $(ACE_ROOT)/ace/String_Base.i \
- $(ACE_ROOT)/ace/String_Base.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
- $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
- $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/Policy_ForwardC.i \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/Exception.h \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/objectid.h \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/AbstractBase.h \
- $(TAO_ROOT)/tao/AbstractBase.inl \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/WrongTransactionC.i \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \
- $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \
- $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \
- $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Notify/notify_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEvent/event_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \
- ../orbsvcs/Notify/Service.h ../orbsvcs/Notify/notify_export.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/XML_Svc_Conf.h \
- $(ACE_ROOT)/ace/Service_Config.i \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(ACE_ROOT)/ace/Atomic_Op.h \
- $(ACE_ROOT)/ace/Atomic_Op_T.h \
- $(ACE_ROOT)/ace/Atomic_Op_T.i \
- $(ACE_ROOT)/ace/Atomic_Op_T.cpp \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS.i \
- ../orbsvcs/Notify/CosNotify_Initializer.h \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/IORTable/IORTable.h \
- $(TAO_ROOT)/tao/IORTable/iortable_export.h \
- $(TAO_ROOT)/tao/IORTable/IORTableC.h \
- $(TAO_ROOT)/tao/IORTable/IORTableC.i \
- $(ACE_ROOT)/ace/Arg_Shifter.h \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Sched_Params.h \
- $(ACE_ROOT)/ace/Sched_Params.i \
- $(ACE_ROOT)/ace/Argv_Type_Converter.h \
- $(ACE_ROOT)/ace/Argv_Type_Converter.inl \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_Singleton.cpp \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/PICurrent.h \
- $(TAO_ROOT)/tao/PICurrent.inl \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
- $(ACE_ROOT)/ace/Dynamic_Service.i \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp \
- ../orbsvcs/Notify/Notify_Service.h ../orbsvcs/Notify/Notify_Service.inl
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/pre.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/ACE_export.h \
+ $(ACE_ROOT)/ace/post.h \
+ $(ACE_ROOT)/ace/ace_wchar.h \
+ $(ACE_ROOT)/ace/ace_wchar.inl \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/OS_Dirent.h \
+ $(ACE_ROOT)/ace/OS_Export.h \
+ $(ACE_ROOT)/ace/OS_Errno.h \
+ $(ACE_ROOT)/ace/OS_Errno.inl \
+ $(ACE_ROOT)/ace/OS_Dirent.inl \
+ $(ACE_ROOT)/ace/OS_String.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/OS_String.inl \
+ $(ACE_ROOT)/ace/OS_Memory.h \
+ $(ACE_ROOT)/ace/OS_Memory.inl \
+ $(ACE_ROOT)/ace/OS_TLI.h \
+ $(ACE_ROOT)/ace/OS_TLI.inl \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/Time_Value.inl \
+ $(ACE_ROOT)/ace/Default_Constants.h \
+ $(ACE_ROOT)/ace/Global_Macros.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/DLL.h \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Thread_Exit.h \
+ $(ACE_ROOT)/ace/Thread_Control.h \
+ $(ACE_ROOT)/ace/Thread_Control.inl \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Free_List.cpp \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Framework_Component.h \
+ $(ACE_ROOT)/ace/Framework_Component.inl \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Flag_Manip.h \
+ $(ACE_ROOT)/ace/Flag_Manip.i \
+ $(ACE_ROOT)/ace/Handle_Ops.h \
+ $(ACE_ROOT)/ace/Handle_Ops.i \
+ $(ACE_ROOT)/ace/Lib_Find.h \
+ $(ACE_ROOT)/ace/Lib_Find.i \
+ $(ACE_ROOT)/ace/Init_ACE.h \
+ $(ACE_ROOT)/ace/Init_ACE.i \
+ $(ACE_ROOT)/ace/Sock_Connect.h \
+ $(ACE_ROOT)/ace/Sock_Connect.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Framework_Component_T.h \
+ $(ACE_ROOT)/ace/Framework_Component_T.inl \
+ $(ACE_ROOT)/ace/Framework_Component_T.cpp \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.h \
+ $(ACE_ROOT)/ace/Message_Queue_T.i \
+ $(ACE_ROOT)/ace/Message_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Notification_Strategy.h \
+ $(ACE_ROOT)/ace/Notification_Strategy.inl \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Task_T.cpp \
+ $(ACE_ROOT)/ace/Module.h \
+ $(ACE_ROOT)/ace/Module.i \
+ $(ACE_ROOT)/ace/Module.cpp \
+ $(ACE_ROOT)/ace/Stream_Modules.h \
+ $(ACE_ROOT)/ace/Stream_Modules.cpp \
+ $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
+ $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
+ $(TAO_ROOT)/tao/corbafwd.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/CDR_Base.inl \
+ $(ACE_ROOT)/ace/CORBA_macros.h \
+ $(ACE_ROOT)/ace/Exception_Macros.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/varbase.h \
+ $(TAO_ROOT)/tao/TAO_Export.h \
+ $(TAO_ROOT)/tao/corbafwd.i \
+ $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
+ $(TAO_ROOT)/tao/CurrentC.h \
+ $(TAO_ROOT)/tao/Object.h \
+ $(TAO_ROOT)/tao/Policy_ForwardC.h \
+ $(TAO_ROOT)/tao/Sequence.h \
+ $(TAO_ROOT)/tao/Managed_Types.h \
+ $(TAO_ROOT)/tao/Managed_Types.i \
+ $(TAO_ROOT)/tao/Sequence.i \
+ $(TAO_ROOT)/tao/Sequence_T.h \
+ $(TAO_ROOT)/tao/Sequence_T.i \
+ $(TAO_ROOT)/tao/Sequence_T.cpp \
+ $(TAO_ROOT)/tao/Environment.h \
+ $(TAO_ROOT)/tao/Environment.i \
+ $(TAO_ROOT)/tao/CDR.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/String_Base.h \
+ $(ACE_ROOT)/ace/String_Base_Const.h \
+ $(ACE_ROOT)/ace/String_Base.i \
+ $(ACE_ROOT)/ace/String_Base.cpp \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_Allocator.h \
+ $(ACE_ROOT)/ace/Malloc_Allocator.i \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Malloc_T.cpp \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \
+ $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \
+ $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ $(TAO_ROOT)/tao/CDR.i \
+ $(TAO_ROOT)/tao/Policy_ForwardC.i \
+ $(TAO_ROOT)/tao/Object.i \
+ $(TAO_ROOT)/tao/CurrentC.i \
+ $(TAO_ROOT)/tao/Exception.h \
+ $(TAO_ROOT)/tao/Exception.i \
+ $(TAO_ROOT)/tao/PolicyC.h \
+ $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
+ $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
+ $(TAO_ROOT)/tao/Encodable.h \
+ $(TAO_ROOT)/tao/PolicyC.i \
+ $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(TAO_ROOT)/tao/Typecode.h \
+ $(TAO_ROOT)/tao/Typecode.i \
+ $(TAO_ROOT)/tao/Any.h \
+ $(TAO_ROOT)/tao/Any.i \
+ $(TAO_ROOT)/tao/NVList.h \
+ $(TAO_ROOT)/tao/NVList.i \
+ $(TAO_ROOT)/tao/LocalObject.h \
+ $(TAO_ROOT)/tao/LocalObject.i \
+ $(TAO_ROOT)/tao/Principal.h \
+ $(TAO_ROOT)/tao/OctetSeqC.h \
+ $(TAO_ROOT)/tao/OctetSeqC.i \
+ $(TAO_ROOT)/tao/Principal.i \
+ $(TAO_ROOT)/tao/ORB.h \
+ $(TAO_ROOT)/tao/Services.h \
+ $(TAO_ROOT)/tao/Services.i \
+ $(TAO_ROOT)/tao/CORBA_String.h \
+ $(TAO_ROOT)/tao/CORBA_String.inl \
+ $(TAO_ROOT)/tao/objectid.h \
+ $(TAO_ROOT)/tao/ORB.i \
+ $(TAO_ROOT)/tao/BoundsC.h \
+ $(TAO_ROOT)/tao/BoundsC.i \
+ $(TAO_ROOT)/tao/ValueBase.h \
+ $(TAO_ROOT)/tao/ValueBase.i \
+ $(TAO_ROOT)/tao/ValueFactory.h \
+ $(TAO_ROOT)/tao/ValueFactory.i \
+ $(TAO_ROOT)/tao/AbstractBase.h \
+ $(TAO_ROOT)/tao/AbstractBase.inl \
+ $(TAO_ROOT)/tao/DomainC.h \
+ $(TAO_ROOT)/tao/DomainC.i \
+ $(TAO_ROOT)/tao/WrongTransactionC.h \
+ $(TAO_ROOT)/tao/WrongTransactionC.i \
+ $(TAO_ROOT)/tao/Object_KeyC.h \
+ $(TAO_ROOT)/tao/Object_KeyC.i \
+ $(TAO_ROOT)/tao/ObjectIDList.h \
+ $(TAO_ROOT)/tao/ObjectIDList.i \
+ $(TAO_ROOT)/tao/StringSeqC.h \
+ $(TAO_ROOT)/tao/StringSeqC.i \
+ $(TAO_ROOT)/tao/PortableInterceptorC.h \
+ $(TAO_ROOT)/tao/DynamicC.h \
+ $(TAO_ROOT)/tao/DynamicC.i \
+ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \
+ $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \
+ $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \
+ $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \
+ $(TAO_ROOT)/tao/IOPC.h \
+ $(TAO_ROOT)/tao/IOPC.i \
+ $(TAO_ROOT)/tao/PortableInterceptorC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Notify/notify_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/naming_export.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \
+ ../orbsvcs/Notify/CosNotify_Initializer.h \
+ ../orbsvcs/Notify/notify_export.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/IORTable/IORTable.h \
+ $(TAO_ROOT)/tao/IORTable/iortable_export.h \
+ $(TAO_ROOT)/tao/IORTable/IORTableC.h \
+ $(TAO_ROOT)/tao/IORTable/IORTableC.i \
+ $(ACE_ROOT)/ace/Arg_Shifter.h \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/Sched_Params.h \
+ $(ACE_ROOT)/ace/Sched_Params.i \
+ $(ACE_ROOT)/ace/Argv_Type_Converter.h \
+ $(ACE_ROOT)/ace/Argv_Type_Converter.inl \
+ $(TAO_ROOT)/tao/ORB_Core.h \
+ $(TAO_ROOT)/tao/Policy_Manager.h \
+ $(TAO_ROOT)/tao/Policy_Set.h \
+ $(TAO_ROOT)/tao/Policy_Set.i \
+ $(TAO_ROOT)/tao/Policy_Manager.i \
+ $(TAO_ROOT)/tao/Resource_Factory.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
+ $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
+ $(TAO_ROOT)/tao/TAO_Singleton.h \
+ $(TAO_ROOT)/tao/TAO_Singleton.inl \
+ $(TAO_ROOT)/tao/TAO_Singleton.cpp \
+ $(TAO_ROOT)/tao/Adapter.h \
+ $(TAO_ROOT)/tao/Adapter.i \
+ $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Map_Manager.cpp \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Types.h \
+ $(ACE_ROOT)/ace/Service_Types.i \
+ $(ACE_ROOT)/ace/XML_Svc_Conf.h \
+ $(ACE_ROOT)/ace/Service_Config.i \
+ $(ACE_ROOT)/ace/Reactor.h \
+ $(ACE_ROOT)/ace/Handle_Set.h \
+ $(ACE_ROOT)/ace/Handle_Set.i \
+ $(ACE_ROOT)/ace/Timer_Queue.h \
+ $(ACE_ROOT)/ace/Timer_Queue_T.h \
+ $(ACE_ROOT)/ace/Test_and_Set.h \
+ $(ACE_ROOT)/ace/Test_and_Set.i \
+ $(ACE_ROOT)/ace/Test_and_Set.cpp \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(TAO_ROOT)/tao/Parser_Registry.h \
+ $(TAO_ROOT)/tao/Parser_Registry.i \
+ $(TAO_ROOT)/tao/Service_Callbacks.h \
+ $(TAO_ROOT)/tao/Service_Callbacks.i \
+ $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
+ $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
+ $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
+ $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
+ $(TAO_ROOT)/tao/Object_Ref_Table.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(TAO_ROOT)/tao/Interceptor_List.h \
+ $(TAO_ROOT)/tao/Interceptor_List.inl \
+ $(TAO_ROOT)/tao/PICurrent.h \
+ $(TAO_ROOT)/tao/PICurrent.inl \
+ $(TAO_ROOT)/tao/ORB_Core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
+ $(ACE_ROOT)/ace/Dynamic_Service.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.cpp \
+ ../orbsvcs/Notify/Service.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS.h \
+ $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
+ $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
+ $(ACE_ROOT)/ace/Atomic_Op.h \
+ $(ACE_ROOT)/ace/Atomic_Op_T.h \
+ $(ACE_ROOT)/ace/Atomic_Op_T.i \
+ $(ACE_ROOT)/ace/Atomic_Op_T.cpp \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
+ $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
+ $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
+ $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
+ $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotificationS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventCommS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyCommS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyFilterS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosEventChannelAdminS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS_T.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNotifyChannelAdminS.i
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Server.cpp b/TAO/orbsvcs/Notify_Service/Notify_Server.cpp
index f036c3a2941..c52349f2212 100644
--- a/TAO/orbsvcs/Notify_Service/Notify_Server.cpp
+++ b/TAO/orbsvcs/Notify_Service/Notify_Server.cpp
@@ -2,7 +2,7 @@
#include "Notify_Service.h"
-TAO_Notify_Service notify_service;
+TAO_Notify_Service_Driver notify_service;
extern "C" void handler (int signum)
{
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Service.cpp b/TAO/orbsvcs/Notify_Service/Notify_Service.cpp
index c61e71396ed..94b91b37409 100644
--- a/TAO/orbsvcs/Notify_Service/Notify_Service.cpp
+++ b/TAO/orbsvcs/Notify_Service/Notify_Service.cpp
@@ -10,9 +10,9 @@
#include "ace/Argv_Type_Converter.h"
#include "tao/ORB_Core.h"
#include "ace/Dynamic_Service.h"
-#include "../orbsvcs/Notify/Notify_Service.h"
+#include "../orbsvcs/Notify/Service.h"
-TAO_Notify_Service::TAO_Notify_Service (void)
+TAO_Notify_Service_Driver::TAO_Notify_Service_Driver (void)
: notify_service_ (0),
bootstrap_ (0),
use_name_svc_ (1),
@@ -25,14 +25,14 @@ TAO_Notify_Service::TAO_Notify_Service (void)
// No-Op.
}
-TAO_Notify_Service::~TAO_Notify_Service (void)
+TAO_Notify_Service_Driver::~TAO_Notify_Service_Driver (void)
{
if (ior_output_file_)
fclose(ior_output_file_);
}
int
-TAO_Notify_Service::init_ORB (int& argc, ACE_TCHAR *argv []
+TAO_Notify_Service_Driver::init_ORB (int& argc, ACE_TCHAR *argv []
ACE_ENV_ARG_DECL)
{
// Copy command line parameter.
@@ -44,14 +44,6 @@ TAO_Notify_Service::init_ORB (int& argc, ACE_TCHAR *argv []
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
- this->notify_service_ = ACE_Dynamic_Service<TAO_NS_Service>::instance (TAO_NS_COS_NOTIFICATION_SERVICE_NAME);
-
- if (this->notify_service_ == 0)
- {
- ACE_DEBUG ((LM_DEBUG, "Service not found! check conf. file\n"));
- return -1;
- }
-
CORBA::Object_var object =
this->orb_->resolve_initial_references("RootPOA"
ACE_ENV_ARG_PARAMETER);
@@ -78,7 +70,7 @@ TAO_Notify_Service::init_ORB (int& argc, ACE_TCHAR *argv []
}
int
-TAO_Notify_Service::init (int argc, ACE_TCHAR *argv[]
+TAO_Notify_Service_Driver::init (int argc, ACE_TCHAR *argv[]
ACE_ENV_ARG_DECL)
{
// initalize the ORB.
@@ -86,6 +78,19 @@ TAO_Notify_Service::init (int argc, ACE_TCHAR *argv[]
ACE_ENV_ARG_PARAMETER) != 0)
return -1;
+ this->notify_service_ = ACE_Dynamic_Service<TAO_Notify_Service>::instance (TAO_NS_NOTIFICATION_SERVICE_NAME);
+
+ if (this->notify_service_ == 0)
+ {
+ this->notify_service_ = ACE_Dynamic_Service<TAO_Notify_Service>::instance (TAO_NOTIFY_DEF_EMO_FACTORY_NAME);
+ }
+
+ if (this->notify_service_ == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Service not found! check conf. file\n"));
+ return -1;
+ }
+
this->notify_service_->init (this->orb_.in () ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (-1);
@@ -252,7 +257,7 @@ TAO_Notify_Service::init (int argc, ACE_TCHAR *argv[]
}
int
-TAO_Notify_Service::resolve_naming_service (ACE_ENV_SINGLE_ARG_DECL)
+TAO_Notify_Service_Driver::resolve_naming_service (ACE_ENV_SINGLE_ARG_DECL)
{
CORBA::Object_var naming_obj =
this->orb_->resolve_initial_references ("NameService"
@@ -279,7 +284,7 @@ TAO_Notify_Service::resolve_naming_service (ACE_ENV_SINGLE_ARG_DECL)
}
int
-TAO_Notify_Service::run (ACE_ENV_SINGLE_ARG_DECL)
+TAO_Notify_Service_Driver::run (ACE_ENV_SINGLE_ARG_DECL)
{
if (TAO_debug_level > 0 )
ACE_DEBUG ((LM_DEBUG, "%s: Running the Notification Service\n",
@@ -298,7 +303,7 @@ TAO_Notify_Service::run (ACE_ENV_SINGLE_ARG_DECL)
}
void
-TAO_Notify_Service::shutdown (ACE_ENV_SINGLE_ARG_DECL)
+TAO_Notify_Service_Driver::shutdown (ACE_ENV_SINGLE_ARG_DECL)
{
// Deactivate.
if (this->use_name_svc_)
@@ -339,7 +344,7 @@ TAO_Notify_Service::shutdown (ACE_ENV_SINGLE_ARG_DECL)
}
int
-TAO_Notify_Service::parse_args (int argc, ACE_TCHAR *argv[])
+TAO_Notify_Service_Driver::parse_args (int argc, ACE_TCHAR *argv[])
{
ACE_Arg_Shifter arg_shifter (argc, argv);
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Service.h b/TAO/orbsvcs/Notify_Service/Notify_Service.h
index 8629250f4c1..0ab78f5667f 100644
--- a/TAO/orbsvcs/Notify_Service/Notify_Service.h
+++ b/TAO/orbsvcs/Notify_Service/Notify_Service.h
@@ -21,9 +21,10 @@
#include "tao/PortableServer/PortableServer.h"
#include "orbsvcs/CosNotifyChannelAdminC.h"
#include "orbsvcs/CosNamingC.h"
-#include "../orbsvcs/Notify/Service.h"
#include "../orbsvcs/Notify/CosNotify_Initializer.h"
+class TAO_Notify_Service;
+
#define NOTIFY_KEY "NotifyEventChannelFactory"
#define NOTIFY_CHANNEL_NAME "NotifyEventChannel"
@@ -49,7 +50,7 @@ private:
// The orb
};
-class TAO_Notify_Service
+class TAO_Notify_Service_Driver
{
// = TITLE
// Notify_Service
@@ -59,10 +60,10 @@ class TAO_Notify_Service
public:
// = Initialization and termination methods.
- TAO_Notify_Service (void);
+ TAO_Notify_Service_Driver (void);
// Constructor.
- virtual ~TAO_Notify_Service (void);
+ virtual ~TAO_Notify_Service_Driver (void);
// Destructor.
int init (int argc, ACE_TCHAR *argv[]
@@ -86,7 +87,7 @@ protected:
ACE_ENV_ARG_DECL);
// initialize the ORB.
- TAO_NS_Service* notify_service_;
+ TAO_Notify_Service* notify_service_;
int resolve_naming_service (ACE_ENV_SINGLE_ARG_DECL);
// Resolve the naming service.
diff --git a/TAO/orbsvcs/orbsvcs/CosNotification.bor b/TAO/orbsvcs/orbsvcs/CosNotification.bor
index 1005829f60b..a8e8ed7aa25 100644
--- a/TAO/orbsvcs/orbsvcs/CosNotification.bor
+++ b/TAO/orbsvcs/orbsvcs/CosNotification.bor
@@ -46,13 +46,12 @@ OBJFILES = \
$(OBJDIR)\Builder.obj \
$(OBJDIR)\Consumer.obj \
$(OBJDIR)\ConsumerAdmin.obj \
- $(OBJDIR)\Container.obj \
$(OBJDIR)\Event.obj \
$(OBJDIR)\EventChannel.obj \
$(OBJDIR)\EventChannelFactory.obj \
$(OBJDIR)\EventType.obj \
$(OBJDIR)\EventTypeSeq.obj \
- $(OBJDIR)\Factory.obj \
+ $(OBJDIR)\Default_Factory.obj \
$(OBJDIR)\FilterAdmin.obj \
$(OBJDIR)\ID_Factory.obj \
$(OBJDIR)\Method_Request.obj \
@@ -61,7 +60,7 @@ OBJFILES = \
$(OBJDIR)\Object.obj \
$(OBJDIR)\Method_Request_Lookup.obj \
$(OBJDIR)\Method_Request_Shutdown.obj \
- $(OBJDIR)\Notify_Service.obj \
+ $(OBJDIR)\CosNotify_Service.obj \
$(OBJDIR)\Peer.obj \
$(OBJDIR)\POA_Helper.obj \
$(OBJDIR)\Properties.obj \
@@ -86,7 +85,6 @@ OBJFILES = \
$(OBJDIR)\Subscription_Change_Worker.obj \
$(OBJDIR)\SupplierAdmin.obj \
$(OBJDIR)\ThreadPool_Task.obj \
- $(OBJDIR)\Types.obj \
$(OBJDIR)\Worker_Task.obj \
$(OBJDIR)\ETCL_Filter.obj \
$(OBJDIR)\ETCL_FilterFactory.obj \
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Admin.cpp b/TAO/orbsvcs/orbsvcs/Notify/Admin.cpp
index 6236246c655..9647c2aa451 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Admin.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Admin.cpp
@@ -8,52 +8,92 @@
ACE_RCSID(RT_Notify, TAO_NS_Admin, "$Id$")
-#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
#include "orbsvcs/CosNotifyChannelAdminC.h"
+#include "Container_T.h"
#include "Proxy.h"
#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
-TAO_NS_Admin::TAO_NS_Admin (ADMIN_TYPE type)
- :type_ (type), filter_operator_ (CosNotifyChannelAdmin::OR_OP)
+TAO_NS_Admin::TAO_NS_Admin (void)
+ : ec_ (0)
+ , proxy_container_ (0)
+ , filter_operator_ (CosNotifyChannelAdmin::OR_OP)
{
// Initialize all Admin objects to initially be subscribed for all events.
- // This is a reasonable default and is ewquired to allow Cos Event consumers/suppliers to send/receive events,
+ // This is a reasonable default and is required to allow Cos Event consumers/suppliers to send/receive events,
this->subscribed_types_.insert (TAO_NS_EventType::special ());
}
TAO_NS_Admin::~TAO_NS_Admin ()
{
+ this->ec_->_decr_refcnt ();
}
-
void
-TAO_NS_Admin::insert (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL)
+TAO_NS_Admin::init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL)
{
- inherited::insert (proxy ACE_ENV_ARG_PARAMETER);
+ this->ec_ = ec;
+
+ this->ec_->_incr_refcnt ();
+
+ this->TAO_NS_Object::init (ec);
+
+ ACE_NEW_THROW_EX (this->proxy_container_,
+ TAO_NS_Proxy_Container (),
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
+ this->proxy_container_->init (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
- this->proxy_id_list_.insert (proxy->id ());
}
void
TAO_NS_Admin::remove (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL)
{
- inherited::remove (proxy ACE_ENV_ARG_PARAMETER);
+ this->proxy_container_->remove (proxy ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
-
- this->proxy_id_list_.remove (proxy->id ());
}
void
TAO_NS_Admin::subscribed_types (TAO_NS_EventTypeSeq& subscribed_types ACE_ENV_ARG_DECL)
{
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
- CORBA::INTERNAL ());
+ CORBA::INTERNAL ());
ACE_CHECK;
// copy
subscribed_types = this->subscribed_types_;
}
+
+int
+TAO_NS_Admin::shutdown (ACE_ENV_SINGLE_ARG_DECL)
+{
+ if (TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return 1;
+
+ this->proxy_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (1);
+
+ delete this->proxy_container_;
+
+ return 0;
+}
+
+void
+TAO_NS_Admin::insert (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL)
+{
+ this->proxy_container_->insert (proxy ACE_ENV_ARG_PARAMETER);
+}
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>;
+template class TAO_NS_Container_T <TAO_NS_Proxy>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#pragma TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>
+#pragma instantiate TAO_NS_Container_T <TAO_NS_Proxy>
+
+#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Admin.h b/TAO/orbsvcs/orbsvcs/Notify/Admin.h
index 001707b4dcc..12228fb5a67 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Admin.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Admin.h
@@ -19,46 +19,42 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "Container_T.h"
#include "FilterAdmin.h"
#include "EventTypeSeq.h"
-#include "EventChannel.h"
+#include "Object.h"
class TAO_NS_Proxy;
class TAO_NS_EventChannel;
+template <class TYPE> class TAO_NS_Container_T;
/**
* @class TAO_NS_Admin
*
- * @brief
+ * @brief Base class for the ConsumerAdmin and SupplierAdmin.
*
*/
-class TAO_Notify_Export TAO_NS_Admin : public virtual TAO_NS_Container_T <TAO_NS_Proxy, TAO_NS_Admin, TAO_NS_EventChannel>
+class TAO_Notify_Export TAO_NS_Admin : public virtual TAO_NS_Object
{
+ friend class TAO_NS_Builder;
public:
- typedef ACE_Unbounded_Set <TAO_NS_Object_Id> TAO_NS_Object_Id_Seq;
-
- enum ADMIN_TYPE
- {
- CONSUMER_ADMIN,
- SUPPLIER_ADMIN
- };
+ typedef CosNotifyChannelAdmin::AdminIDSeq SEQ;
+ typedef CosNotifyChannelAdmin::AdminIDSeq_var SEQ_VAR;
/// Constuctor
- TAO_NS_Admin (ADMIN_TYPE type);
+ TAO_NS_Admin (void);
/// Destructor
~TAO_NS_Admin ();
- /// Insert object to this container.
- virtual void insert (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL);
+ /// Init
+ void init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL);
- /// Remove type from container_
- virtual void remove (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL);
+ /// Insert the proxy in the <proxy_container_>.
+ void insert (TAO_NS_Proxy* proxy ACE_ENV_ARG_DECL);
- /// Return type.
- ADMIN_TYPE type (void);
+ /// Remove type from container_
+ void remove (TAO_NS_Proxy *proxy ACE_ENV_ARG_DECL);
/// Access Admin FilterAdmin.
TAO_NS_FilterAdmin& filter_admin (void);
@@ -72,15 +68,19 @@ public:
/// Obtain the Admin's subscribed types.
void subscribed_types (TAO_NS_EventTypeSeq& subscribed_types ACE_ENV_ARG_DECL);
+ /// Shutdown
+ virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
+
protected:
- typedef TAO_NS_Container_T <TAO_NS_Proxy, TAO_NS_Admin, TAO_NS_EventChannel> inherited;
+ typedef TAO_NS_Container_T <TAO_NS_Proxy> TAO_NS_Proxy_Container;
/// = Data Members
- /// List of proxy ID's
- TAO_NS_Object_Id_Seq proxy_id_list_;
- /// Type of Admin
- ADMIN_TYPE type_;
+ /// The EventChannel.
+ TAO_NS_EventChannel *ec_;
+
+ /// The Proxy Container.
+ TAO_NS_Proxy_Container *proxy_container_;;
/// The types that we've subscribed our proxy objects with the event manager.
TAO_NS_EventTypeSeq subscribed_types_;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Admin.inl b/TAO/orbsvcs/orbsvcs/Notify/Admin.inl
index 814304a558d..2975697d92a 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Admin.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/Admin.inl
@@ -1,11 +1,5 @@
// $Id$
-ACE_INLINE TAO_NS_Admin::ADMIN_TYPE
-TAO_NS_Admin::type (void)
-{
- return this->type_;
-}
-
ACE_INLINE TAO_NS_FilterAdmin&
TAO_NS_Admin::filter_admin (void)
{
diff --git a/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.h b/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.h
index fe14835ab24..e05e06d2b1c 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/AdminProperties.h
@@ -22,7 +22,6 @@
#include "ace/Atomic_Op.h"
#include "ace/Refcounted_Auto_Ptr.h"
#include "tao/orbconf.h"
-#include "Types.h"
#include "PropertySeq.h"
#include "Property_T.h"
#include "Property.h"
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.cpp
index a8f0fa35236..92576ba0b82 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.cpp
@@ -8,9 +8,7 @@
ACE_RCSID(Notify, TAO_NS_CosEC_ProxyPushConsumer, "$id$")
-#include "ace/Refcounted_Auto_Ptr.h"
#include "tao/debug.h"
-#include "../Admin.h"
#include "../AdminProperties.h"
#include "AnyEvent.h"
#include "PushSupplier.h"
@@ -36,7 +34,10 @@ TAO_NS_CosEC_ProxyPushConsumer::destroy (ACE_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG, "In TAO_NS_CosEC_ProxyPushConsumer::destroy \n"));
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
}
void
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h
index 780eb08aaa2..08b822c921f 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosEventChannelAdminS.h"
#include "../ProxyConsumer_T.h"
-#include "../Destroy_Callback.h"
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
@@ -36,7 +35,7 @@
* @brief
*
*/
-class TAO_Notify_Export TAO_NS_CosEC_ProxyPushConsumer : public virtual TAO_NS_ProxyConsumer_T <POA_CosEventChannelAdmin::ProxyPushConsumer>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_CosEC_ProxyPushConsumer : public virtual TAO_NS_ProxyConsumer_T <POA_CosEventChannelAdmin::ProxyPushConsumer>
{
friend class TAO_NS_Builder;
public:
@@ -46,7 +45,7 @@ public:
/// Destructor
~TAO_NS_CosEC_ProxyPushConsumer ();
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
/// Destroy this object.
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.cpp
index 401d9e8d604..c4c139cf9c8 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.cpp
@@ -10,12 +10,6 @@ ACE_RCSID(Notify, TAO_NS_CosEC_ProxyPushSupplier, "$id$")
#include "tao/debug.h"
#include "PushConsumer.h"
-#include "../Proxy.h"
-#include "../Admin.h"
-#include "../EventChannel.h"
-#include "../EventChannelFactory.h"
-#include "../Notify_Service.h"
-
TAO_NS_CosEC_ProxyPushSupplier::TAO_NS_CosEC_ProxyPushSupplier (void)
{
@@ -31,7 +25,10 @@ TAO_NS_CosEC_ProxyPushSupplier::destroy (ACE_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG, "In TAO_NS_ProxyPushConsumer::destroy \n"));
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
}
void
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h
index a7a27dc3221..3f3a794e2b8 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h
@@ -40,7 +40,7 @@ TAO_NS_ProxySupplier_T<POA_CosEventChannelAdmin::ProxyPushSupplier>;
* @brief
*
*/
-class TAO_Notify_Export TAO_NS_CosEC_ProxyPushSupplier : public virtual TAO_NS_ProxySupplier_T <POA_CosEventChannelAdmin::ProxyPushSupplier>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_CosEC_ProxyPushSupplier : public virtual TAO_NS_ProxySupplier_T <POA_CosEventChannelAdmin::ProxyPushSupplier>
{
friend class TAO_NS_Builder;
public:
@@ -53,7 +53,7 @@ public:
/// Destroy this object.
virtual void destroy (ACE_ENV_SINGLE_ARG_DECL);
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
// = Interface methods
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp
index 8b2ec3bb101..d09f50987a7 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.cpp
@@ -8,9 +8,7 @@
ACE_RCSID(Notify, TAO_NS_ProxyPushConsumer, "$id$")
-#include "ace/Refcounted_Auto_Ptr.h"
#include "tao/debug.h"
-#include "../Admin.h"
#include "../AdminProperties.h"
#include "AnyEvent.h"
#include "PushSupplier.h"
@@ -39,7 +37,10 @@ TAO_NS_ProxyPushConsumer::destroy (ACE_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG, "In TAO_NS_ProxyPushConsumer::destroy \n"));
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
}
CosNotifyChannelAdmin::ProxyType
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.h
index 83eb801af1f..90a6fd5a7c4 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushConsumer.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyChannelAdminS.h"
#include "../ProxyConsumer_T.h"
-#include "../Destroy_Callback.h"
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
@@ -36,7 +35,7 @@
* @brief
*
*/
-class TAO_Notify_Export TAO_NS_ProxyPushConsumer : public virtual TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::ProxyPushConsumer>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_ProxyPushConsumer : public virtual TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::ProxyPushConsumer>
{
friend class TAO_NS_Builder;
public:
@@ -46,7 +45,7 @@ public:
/// Destructor
~TAO_NS_ProxyPushConsumer ();
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
/// Destroy this object.
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp
index a430c6f0a1c..81612398502 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.cpp
@@ -10,12 +10,6 @@ ACE_RCSID(Notify, TAO_NS_ProxyPushSupplier, "$id$")
#include "tao/debug.h"
#include "PushConsumer.h"
-#include "../Proxy.h"
-#include "../Admin.h"
-#include "../EventChannel.h"
-#include "../EventChannelFactory.h"
-#include "../Notify_Service.h"
-
TAO_NS_ProxyPushSupplier::TAO_NS_ProxyPushSupplier (void)
{
@@ -31,7 +25,10 @@ TAO_NS_ProxyPushSupplier::destroy (ACE_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG, "In TAO_NS_ProxyPushConsumer::destroy \n"));
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
}
void
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.h
index 66a6f0de2d8..8d2e9bb8277 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/ProxyPushSupplier.h
@@ -41,7 +41,7 @@ TAO_NS_ProxySupplier_T<POA_Event_Forwarder::ProxyPushSupplier>;
* @brief
*
*/
-class TAO_Notify_Export TAO_NS_ProxyPushSupplier : public virtual TAO_NS_ProxySupplier_T <POA_Event_Forwarder::ProxyPushSupplier>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_ProxyPushSupplier : public virtual TAO_NS_ProxySupplier_T <POA_Event_Forwarder::ProxyPushSupplier>
{
friend class TAO_NS_Builder;
public:
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/PushConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/Any/PushConsumer.h
index 5660ddeee77..7a3d5c7ed39 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/PushConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/PushConsumer.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyCommC.h"
#include "../Consumer.h"
-#include "../Destroy_Callback.h"
/**
* @class TAO_NS_PushConsumer
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Any/PushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Any/PushSupplier.h
index 3ba1c4fb2c0..be260eb1710 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Any/PushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Any/PushSupplier.h
@@ -22,7 +22,6 @@
#include "orbsvcs/CosNotifyCommC.h"
#include "../Supplier.h"
-#include "../Destroy_Callback.h"
class TAO_NS_ProxyConsumer;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Builder.cpp b/TAO/orbsvcs/orbsvcs/Notify/Builder.cpp
index f12a6ea898e..7f260d10cca 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Builder.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Builder.cpp
@@ -7,7 +7,6 @@
ACE_RCSID(RT_Notify, TAO_NS_Builder, "$Id$")
-#include "ace/Auto_Ptr.h"
#include "ace/Dynamic_Service.h"
#include "tao/PortableServer/PortableServerC.h"
#include "Factory.h"
@@ -24,7 +23,6 @@ ACE_RCSID(RT_Notify, TAO_NS_Builder, "$Id$")
#include "ThreadPool_Task.h"
#include "FilterFactory.h"
#include "Object.h"
-#include "Notify_Service.h"
#include "EventType.h"
#include "Event.h"
#include "Any/AnyEvent.h"
@@ -37,6 +35,101 @@ ACE_RCSID(RT_Notify, TAO_NS_Builder, "$Id$")
#include "Sequence/SequenceProxyPushConsumer.h"
#include "Sequence/SequenceProxyPushSupplier.h"
#include "ETCL_FilterFactory.h"
+#include "Container_T.h"
+
+template <class PROXY_IMPL, class PROXY, class PROXY_PTR, class PROXY_VAR, class PARENT>
+class TAO_NS_Proxy_Builder_T
+{
+public:
+ PROXY_PTR
+ build (PARENT *parent, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL)
+ {
+ PROXY_VAR proxy_ret;
+
+ TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory ();
+
+ PROXY_IMPL* proxy = 0;
+ factory->create (proxy ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (proxy_ret._retn ());
+
+ PortableServer::ServantBase_var servant (proxy);
+
+ proxy->init (parent ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (proxy_ret._retn ());
+
+ CORBA::Object_var obj = proxy->activate (proxy ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (proxy_ret._retn ());
+
+ proxy_id = proxy->id ();
+
+ proxy_ret = PROXY::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (proxy_ret._retn ());
+
+ // insert proxy in admin container.
+ parent->insert (proxy ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (PROXY::_nil ());
+
+ return proxy_ret._retn ();
+ }
+};
+
+// define the ProxyConsumer Builders.
+typedef TAO_NS_Proxy_Builder_T<TAO_NS_ProxyPushConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer_ptr
+ , CosNotifyChannelAdmin::ProxyConsumer_var
+ , TAO_NS_SupplierAdmin>
+TAO_NS_ProxyPushConsumer_Builder;
+
+typedef TAO_NS_Proxy_Builder_T<TAO_NS_StructuredProxyPushConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer_ptr
+ , CosNotifyChannelAdmin::ProxyConsumer_var
+ , TAO_NS_SupplierAdmin>
+TAO_NS_StructuredProxyPushConsumer_Builder;
+
+typedef TAO_NS_Proxy_Builder_T<TAO_NS_SequenceProxyPushConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer_ptr
+ , CosNotifyChannelAdmin::ProxyConsumer_var
+ , TAO_NS_SupplierAdmin>
+TAO_NS_SequenceProxyPushConsumer_Builder;
+
+typedef TAO_NS_Proxy_Builder_T<TAO_NS_CosEC_ProxyPushConsumer
+ , CosEventChannelAdmin::ProxyPushConsumer
+ , CosEventChannelAdmin::ProxyPushConsumer_ptr
+ , CosEventChannelAdmin::ProxyPushConsumer_var
+ , TAO_NS_SupplierAdmin>
+TAO_NS_CosEC_ProxyPushConsumer_Builder;
+
+// define the ProxySupplier Builders.
+typedef TAO_NS_Proxy_Builder_T<TAO_NS_ProxyPushSupplier
+ , CosNotifyChannelAdmin::ProxySupplier
+ , CosNotifyChannelAdmin::ProxySupplier_ptr
+ , CosNotifyChannelAdmin::ProxySupplier_var
+ , TAO_NS_ConsumerAdmin>
+TAO_NS_ProxyPushSupplier_Builder;
+
+typedef TAO_NS_Proxy_Builder_T<TAO_NS_StructuredProxyPushSupplier
+ , CosNotifyChannelAdmin::ProxySupplier
+ , CosNotifyChannelAdmin::ProxySupplier_ptr
+ , CosNotifyChannelAdmin::ProxySupplier_var
+ , TAO_NS_ConsumerAdmin>
+TAO_NS_StructuredProxyPushSupplier_Builder;
+
+typedef TAO_NS_Proxy_Builder_T<TAO_NS_SequenceProxyPushSupplier
+ , CosNotifyChannelAdmin::ProxySupplier
+ , CosNotifyChannelAdmin::ProxySupplier_ptr
+ , CosNotifyChannelAdmin::ProxySupplier_var
+ , TAO_NS_ConsumerAdmin>
+TAO_NS_SequenceProxyPushSupplier_Builder;
+
+typedef TAO_NS_Proxy_Builder_T<TAO_NS_CosEC_ProxyPushSupplier
+ , CosEventChannelAdmin::ProxyPushSupplier
+ , CosEventChannelAdmin::ProxyPushSupplier_ptr
+ , CosEventChannelAdmin::ProxyPushSupplier_var
+ , TAO_NS_ConsumerAdmin>
+TAO_NS_CosEC_ProxyPushSupplier_Builder;
TAO_NS_Builder::TAO_NS_Builder (void)
{
@@ -61,7 +154,9 @@ TAO_NS_Builder::build_filter_factory (ACE_ENV_SINGLE_ARG_DECL)
ACE_CHECK_RETURN (CosNotifyFilter::FilterFactory::_nil ());
}
- return ff->create (ACE_ENV_SINGLE_ARG_PARAMETER);
+ PortableServer::POA_var default_poa = TAO_NS_PROPERTIES::instance ()->default_poa ();
+
+ return ff->create (default_poa ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::EventChannelFactory_ptr
@@ -71,43 +166,18 @@ TAO_NS_Builder::build_event_channel_factory (PortableServer::POA_ptr poa ACE_ENV
TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory ();
- TAO_NS_POA_Helper* object_poa = 0;
- // Bootstrap initial Object POA
- ACE_NEW_THROW_EX (object_poa,
- TAO_NS_POA_Helper (),
- CORBA::NO_MEMORY ());
- ACE_CHECK_RETURN (ecf_ret._retn ());
-
- auto_ptr<TAO_NS_POA_Helper> auto_object_poa (object_poa);
-
- object_poa->init (poa ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (ecf_ret._retn ());
-
// Create ECF
TAO_NS_EventChannelFactory* ecf = 0;
factory->create (ecf ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ecf_ret._retn ());
- ecf->TAO_NS_EventChannelFactory::init (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- ecf->destroy_callback (ecf);
-
PortableServer::ServantBase_var servant_var (ecf);
- ecf->TAO_NS_Container_T <TAO_NS_EventChannel, TAO_NS_EventChannelFactory, TAO_NS_Notify_Service>::init (object_poa, 0, object_poa, object_poa);
+ ecf->TAO_NS_EventChannelFactory::init (poa ACE_ENV_ARG_PARAMETER);
- ecf->init_collection (ACE_ENV_SINGLE_ARG_PARAMETER);
+ CORBA::Object_var obj = ecf->activate (ecf ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ecf_ret._retn ());
- // Give ownership of object_poa
- ecf->object_poa (object_poa);
-
- CORBA::Object_var obj = ecf->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (ecf_ret._retn ());
-
- // release auto_ref.
- auto_object_poa.release ();
-
ecf_ret = CosNotifyChannelAdmin::EventChannelFactory::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ecf_ret._retn ());
@@ -116,11 +186,6 @@ TAO_NS_Builder::build_event_channel_factory (PortableServer::POA_ptr poa ACE_ENV
CosNotifyChannelAdmin::EventChannel_ptr
TAO_NS_Builder::build_event_channel (TAO_NS_EventChannelFactory* ecf, const CosNotification::QoSProperties & initial_qos, const CosNotification::AdminProperties & initial_admin, CosNotifyChannelAdmin::ChannelID_out id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- , CosNotification::UnsupportedQoS
- , CosNotification::UnsupportedAdmin
- ))
{
CosNotifyChannelAdmin::EventChannel_var ec_ret;
@@ -130,62 +195,21 @@ TAO_NS_Builder::build_event_channel (TAO_NS_EventChannelFactory* ecf, const CosN
factory->create (ec ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ec_ret._retn ());
- ec->destroy_callback (ec);
-
PortableServer::ServantBase_var servant_var (ec);
- TAO_NS_AdminProperties* admin_properties = 0;
-
- // set the admin properties.
- ACE_NEW_THROW_EX (admin_properties,
- TAO_NS_AdminProperties (),
- CORBA::NO_MEMORY ());
-
- ec->admin_properties_ = admin_properties;
-
- // set the parent -
- ec->parent_ = ecf;
- ec->parent_->_incr_refcnt ();
-
- ec->TAO_NS_Container::init (ecf->object_poa(), 0, ecf->object_poa(), ecf->object_poa());
-
- // proxy poa is set next.
- ec->init_collection (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (ec_ret._retn ());
-
- // insert ec in ecf container.
- ecf->insert (ec ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (ec_ret._retn ());
-
- // create the event manager. @@ use factory
- ACE_NEW_THROW_EX (ec->event_manager_,
- TAO_NS_Event_Manager (),
- CORBA::NO_MEMORY ());
- ACE_CHECK_RETURN (ec_ret._retn ());
-
- ec->event_manager_->init (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (ec_ret._retn ());
-
- const CosNotification::QoSProperties &default_ec_qos =
- TAO_NS_PROPERTIES::instance ()->default_event_channel_qos_properties ();
-
- ec->set_qos (default_ec_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (ec_ret._retn ());
-
- ec->set_qos (initial_qos ACE_ENV_ARG_PARAMETER);
+ ec->init (ecf, initial_qos, initial_admin ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ec_ret._retn ());
- ec->set_admin (initial_admin ACE_ENV_ARG_PARAMETER);
+ // insert ec in ec container.
+ ecf->ec_container_->insert (ec ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ec_ret._retn ());
- CORBA::Object_var obj = ec->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
+ CORBA::Object_var obj = ec->activate (ec ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ec_ret._retn ());
+ // Populate the ID to return.
id = ec->id ();
- // perform channel specific init
- ec->TAO_NS_EventChannel::init (ACE_ENV_SINGLE_ARG_PARAMETER);
-
ec_ret = CosNotifyChannelAdmin::EventChannel::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ec_ret._retn ());
@@ -194,9 +218,6 @@ TAO_NS_Builder::build_event_channel (TAO_NS_EventChannelFactory* ecf, const CosN
CosNotifyChannelAdmin::ConsumerAdmin_ptr
TAO_NS_Builder::build_consumer_admin (TAO_NS_EventChannel* ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
{
CosNotifyChannelAdmin::ConsumerAdmin_var ca_ret;
@@ -206,40 +227,23 @@ TAO_NS_Builder::build_consumer_admin (TAO_NS_EventChannel* ec, CosNotifyChannelA
factory->create (ca ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
- ca->destroy_callback (ca);
- ca->filter_operator (op);
-
- ca->parent_ = ec;
- ca->parent_->_incr_refcnt ();
- ca->event_manager_ = ec->event_manager_;
- ca->admin_properties_ = ec->admin_properties_;
-
PortableServer::ServantBase_var servant_var (ca);
- ca->init (ec->object_poa (), ec->worker_task (), ec->object_poa (), ec->proxy_poa ());
-
- ca->init_collection (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ca->init (ec ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
- // insert admin in ec container.
- ec->insert (ca ACE_ENV_ARG_PARAMETER);
+ ca->filter_operator (op);
- CORBA::Object_var obj = ca->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
+ CORBA::Object_var obj = ca->activate (ca ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
id = ca->id ();
- const CosNotification::QoSProperties &default_ca_qos =
- TAO_NS_PROPERTIES::instance ()->default_consumer_admin_qos_properties ();
-
- ca->set_qos (default_ca_qos ACE_ENV_ARG_PARAMETER);
+ ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
- // Pass EC QoS
- ec->qos_properties_.transfer (ca->qos_properties_);
- ca->qos_changed (ca->qos_properties_);
-
- ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
+ // insert admin in CA container.
+ ec->ca_container_->insert (ca ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
return ca_ret._retn ();
@@ -247,9 +251,6 @@ TAO_NS_Builder::build_consumer_admin (TAO_NS_EventChannel* ec, CosNotifyChannelA
CosNotifyChannelAdmin::SupplierAdmin_ptr
TAO_NS_Builder::build_supplier_admin (TAO_NS_EventChannel* ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
{
CosNotifyChannelAdmin::SupplierAdmin_var sa_ret;
@@ -259,336 +260,89 @@ TAO_NS_Builder::build_supplier_admin (TAO_NS_EventChannel* ec, CosNotifyChannelA
factory->create (sa ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
- sa->destroy_callback (sa);
- sa->filter_operator (op);
-
- sa->parent_ = ec;
- sa->parent_->_incr_refcnt ();
- sa->event_manager_ = ec->event_manager_;
- sa->admin_properties_ = ec->admin_properties_;
-
PortableServer::ServantBase_var servant_var (sa);
- sa->init (ec->object_poa (), ec->worker_task (), ec->object_poa (), ec->proxy_poa ());
-
- sa->init_collection (ACE_ENV_SINGLE_ARG_PARAMETER);
+ sa->init (ec ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
- // insert admin in ec container.
- ec->insert (sa ACE_ENV_ARG_PARAMETER);
+ sa->filter_operator (op);
- CORBA::Object_var obj = sa->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
+ CORBA::Object_var obj = sa->activate (sa ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
id = sa->id ();
- const CosNotification::QoSProperties &default_sa_qos =
- TAO_NS_PROPERTIES::instance ()->default_supplier_admin_qos_properties ();
-
- sa->set_qos (default_sa_qos ACE_ENV_ARG_PARAMETER);
+ sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
- // Pass EC QoS
- ec->qos_properties_.transfer (sa->qos_properties_);
- sa->qos_changed (sa->qos_properties_);
-
- sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
+ // insert admin in SA container.
+ ec->sa_container_->insert (sa ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
return sa_ret._retn ();
}
CosNotifyChannelAdmin::ProxyConsumer_ptr
-TAO_NS_Builder::build_notification_push_consumer (TAO_NS_SupplierAdmin* sa, CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- , CosNotifyChannelAdmin::AdminLimitExceeded
- ))
-
+TAO_NS_Builder::build_proxy(TAO_NS_SupplierAdmin* sa
+ , CosNotifyChannelAdmin::ClientType ctype
+ , CosNotifyChannelAdmin::ProxyID_out proxy_id
+ ACE_ENV_ARG_DECL)
{
- CosNotifyChannelAdmin::ProxyConsumer_var proxy_ret;
-
- TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory ();
-
switch (ctype)
{
- case CosNotifyChannelAdmin::STRUCTURED_EVENT:
+ case CosNotifyChannelAdmin::ANY_EVENT:
{
- TAO_NS_StructuredProxyPushConsumer* pc = 0;
- factory->create (pc ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- pc->destroy_callback (pc);
-
- PortableServer::ServantBase_var servantbase_var (pc);
-
- pc->event_manager_ = sa->event_manager_;
- pc->admin_properties_ = sa->admin_properties_;
- pc->parent_ = sa;
- pc->parent_->_incr_refcnt ();
-
- /// self POA, proxy POA
- pc->init (sa->proxy_poa (), sa->proxy_poa (), sa->worker_task ());
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // insert proxy in admin container.
- sa->insert (pc ACE_ENV_ARG_PARAMETER);
-
- CORBA::Object_var obj = pc->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- proxy_id = pc->id ();
-
- const CosNotification::QoSProperties &default_pc_qos =
- TAO_NS_PROPERTIES::instance ()->default_proxy_consumer_qos_properties ();
-
- pc->set_qos (default_pc_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // Pass SA QoS
- sa->qos_properties_.transfer (pc->qos_properties_);
- pc->qos_changed (pc->qos_properties_);
-
- proxy_ret = CosNotifyChannelAdmin::ProxyConsumer::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ TAO_NS_ProxyPushConsumer_Builder pb;
+ return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER);
}
- break;
+ break;
- case CosNotifyChannelAdmin::ANY_EVENT:
+ case CosNotifyChannelAdmin::STRUCTURED_EVENT:
{
- TAO_NS_ProxyPushConsumer* pc = 0;
- factory->create (pc ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- pc->destroy_callback (pc);
-
- PortableServer::ServantBase_var servantbase_var (pc);
-
- pc->event_manager_ = sa->event_manager_;
- pc->admin_properties_ = sa->admin_properties_;
- pc->parent_ = sa;
- pc->parent_->_incr_refcnt ();
-
- /// self POA, proxy POA
- pc->init (sa->proxy_poa (), sa->proxy_poa (), sa->worker_task ());
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // insert proxy in admin container.
- sa->insert (pc ACE_ENV_ARG_PARAMETER);
-
- CORBA::Object_var obj = pc->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- proxy_id = pc->id ();
-
- const CosNotification::QoSProperties &default_pc_qos =
- TAO_NS_PROPERTIES::instance ()->default_proxy_consumer_qos_properties ();
-
- pc->set_qos (default_pc_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // Pass SA QoS
- sa->qos_properties_.transfer (pc->qos_properties_);
- pc->qos_changed (pc->qos_properties_);
-
- proxy_ret = CosNotifyChannelAdmin::ProxyConsumer::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ TAO_NS_StructuredProxyPushConsumer_Builder pb;
+ return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER);
}
break;
case CosNotifyChannelAdmin::SEQUENCE_EVENT:
- {
- TAO_NS_SequenceProxyPushConsumer* pc = 0;
- factory->create (pc ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- pc->destroy_callback (pc);
-
- PortableServer::ServantBase_var servantbase_var (pc);
-
- pc->event_manager_ = sa->event_manager_;
- pc->admin_properties_ = sa->admin_properties_;
- pc->parent_ = sa;
- pc->parent_->_incr_refcnt ();
-
- /// self POA, proxy POA
- pc->init (sa->proxy_poa (), sa->proxy_poa (), sa->worker_task ());
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // insert proxy in admin container.
- sa->insert (pc ACE_ENV_ARG_PARAMETER);
-
- CORBA::Object_var obj = pc->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- proxy_id = pc->id ();
-
- const CosNotification::QoSProperties &default_pc_qos =
- TAO_NS_PROPERTIES::instance ()->default_proxy_consumer_qos_properties ();
-
- pc->set_qos (default_pc_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // Pass SA QoS
- sa->qos_properties_.transfer (pc->qos_properties_);
- pc->qos_changed (pc->qos_properties_);
-
- proxy_ret = CosNotifyChannelAdmin::ProxyConsumer::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
- }
+ {
+ TAO_NS_SequenceProxyPushConsumer_Builder pb;
+ return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER);
+ }
break;
default:
ACE_THROW_RETURN (CORBA::BAD_PARAM (),
CosNotifyChannelAdmin::ProxyConsumer::_nil ());
- }
-
- return proxy_ret._retn ();
+ }
}
-
CosNotifyChannelAdmin::ProxySupplier_ptr
-TAO_NS_Builder::build_notification_push_supplier (TAO_NS_ConsumerAdmin* ca, CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- , CosNotifyChannelAdmin::AdminLimitExceeded
- ))
+TAO_NS_Builder::build_proxy(TAO_NS_ConsumerAdmin* ca
+ , CosNotifyChannelAdmin::ClientType ctype
+ , CosNotifyChannelAdmin::ProxyID_out proxy_id
+ ACE_ENV_ARG_DECL)
{
- CosNotifyChannelAdmin::ProxySupplier_var proxy_ret;
-
- TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory ();
-
switch (ctype)
{
case CosNotifyChannelAdmin::ANY_EVENT:
{
- TAO_NS_ProxyPushSupplier* ps = 0;
- factory->create (ps ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- ps->destroy_callback (ps);
-
- PortableServer::ServantBase_var servant (ps);
-
- ps->event_manager_ = ca->event_manager_;
- ps->admin_properties_ = ca->admin_properties_;
- ps->parent_ = ca;
- ps->parent_->_incr_refcnt ();
-
- /// self POA, proxy POA
- ps->init (ca->proxy_poa (), ca->proxy_poa (), ca->worker_task ());
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // insert proxy in admin container.
- ca->insert (ps ACE_ENV_ARG_PARAMETER);
-
- CORBA::Object_var obj = ps->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- proxy_id = ps->id ();
-
- ps->init_ps (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- const CosNotification::QoSProperties &default_ps_qos =
- TAO_NS_PROPERTIES::instance ()->default_proxy_supplier_qos_properties ();
-
- ps->set_qos (default_ps_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // Pass CA QoS
- ca->qos_properties_.transfer (ps->qos_properties_);
- ps->qos_changed (ps->qos_properties_);
-
- proxy_ret = CosNotifyChannelAdmin::ProxySupplier::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ TAO_NS_ProxyPushSupplier_Builder pb;
+ return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER);
}
break;
case CosNotifyChannelAdmin::STRUCTURED_EVENT:
{
- TAO_NS_StructuredProxyPushSupplier* ps = 0;
- factory->create (ps ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- ps->destroy_callback (ps);
-
- PortableServer::ServantBase_var servant (ps);
-
- ps->event_manager_ = ca->event_manager_;
- ps->admin_properties_ = ca->admin_properties_;
- ps->parent_ = ca;
- ps->parent_->_incr_refcnt ();
-
- /// self POA, proxy POA
- ps->init (ca->proxy_poa (), ca->proxy_poa (), ca->worker_task ());
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // insert proxy in admin container.
- ca->insert (ps ACE_ENV_ARG_PARAMETER);
-
- CORBA::Object_var obj = ps->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- proxy_id = ps->id ();
-
- ps->init_ps (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- const CosNotification::QoSProperties &default_ps_qos =
- TAO_NS_PROPERTIES::instance ()->default_proxy_supplier_qos_properties ();
-
- ps->set_qos (default_ps_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // Pass CA QoS
- ca->qos_properties_.transfer (ps->qos_properties_);
- ps->qos_changed (ps->qos_properties_);
-
- proxy_ret = CosNotifyChannelAdmin::ProxySupplier::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ TAO_NS_StructuredProxyPushSupplier_Builder pb;
+ return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER);
}
- break;
+ break;
case CosNotifyChannelAdmin::SEQUENCE_EVENT:
{
- TAO_NS_SequenceProxyPushSupplier* ps = 0;
- factory->create (ps ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- ps->destroy_callback (ps);
-
- PortableServer::ServantBase_var servant (ps);
-
- ps->event_manager_ = ca->event_manager_;
- ps->admin_properties_ = ca->admin_properties_;
- ps->parent_ = ca;
- ps->parent_->_incr_refcnt ();
-
- /// self POA, proxy POA
- ps->init (ca->proxy_poa (), ca->proxy_poa (), ca->worker_task ());
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // insert proxy in admin container.
- ca->insert (ps ACE_ENV_ARG_PARAMETER);
-
- CORBA::Object_var obj = ps->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- proxy_id = ps->id ();
-
- ps->init_ps (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- const CosNotification::QoSProperties &default_ps_qos =
- TAO_NS_PROPERTIES::instance ()->default_proxy_supplier_qos_properties ();
-
- ps->set_qos (default_ps_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // Pass CA QoS
- ca->qos_properties_.transfer (ps->qos_properties_);
- ps->qos_changed (ps->qos_properties_);
-
- proxy_ret = CosNotifyChannelAdmin::ProxySupplier::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ TAO_NS_SequenceProxyPushSupplier_Builder pb;
+ return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER);
}
break;
@@ -596,108 +350,69 @@ TAO_NS_Builder::build_notification_push_supplier (TAO_NS_ConsumerAdmin* ca, CosN
ACE_THROW_RETURN (CORBA::BAD_PARAM (),
CosNotifyChannelAdmin::ProxySupplier::_nil ());
}
-
- return proxy_ret._retn ();
}
CosEventChannelAdmin::ProxyPushSupplier_ptr
-TAO_NS_Builder::build_push_supplier (TAO_NS_ConsumerAdmin* ca ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+TAO_NS_Builder::build_proxy (TAO_NS_ConsumerAdmin* ca ACE_ENV_ARG_DECL)
{
- CosEventChannelAdmin::ProxyPushSupplier_var proxy_ret;
-
- TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory ();
+ CosNotifyChannelAdmin::ProxyID proxy_id;
- TAO_NS_CosEC_ProxyPushSupplier* ps = 0;
- factory->create (ps ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ TAO_NS_CosEC_ProxyPushSupplier_Builder pb;
- ps->destroy_callback (ps);
-
- PortableServer::ServantBase_var servant (ps);
-
- ps->event_manager_ = ca->event_manager_;
- ps->admin_properties_ = ca->admin_properties_;
- ps->parent_ = ca;
- ps->parent_->_incr_refcnt ();
-
- // self POA, proxy POA
- ps->init (ca->proxy_poa (), ca->proxy_poa (), ca->worker_task ());
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // insert proxy in admin container.
- ca->insert (ps ACE_ENV_ARG_PARAMETER);
-
- CORBA::Object_var obj = ps->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- ps->init_ps (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- const CosNotification::QoSProperties &default_ps_qos =
- TAO_NS_PROPERTIES::instance ()->default_proxy_supplier_qos_properties ();
-
- ps->set_qos (default_ps_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- // Pass CA QoS
- ca->qos_properties_.transfer (ps->qos_properties_);
- ps->qos_changed (ps->qos_properties_);
-
- proxy_ret = CosEventChannelAdmin::ProxyPushSupplier::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
-
- return proxy_ret._retn ();
+ return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER);
}
CosEventChannelAdmin::ProxyPushConsumer_ptr
-TAO_NS_Builder::build_push_consumer (TAO_NS_SupplierAdmin* sa ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+TAO_NS_Builder::build_proxy (TAO_NS_SupplierAdmin* sa ACE_ENV_ARG_DECL)
{
- CosEventChannelAdmin::ProxyPushConsumer_var proxy_ret;
+ CosNotifyChannelAdmin::ProxyID proxy_id;
- TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory ();
+ TAO_NS_CosEC_ProxyPushConsumer_Builder pb;
- TAO_NS_CosEC_ProxyPushConsumer* pc = 0;
- factory->create (pc ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER);
+}
- pc->destroy_callback (pc);
+void
+TAO_NS_Builder::apply_reactive_concurrency (TAO_NS_Object& object ACE_ENV_ARG_DECL)
+{
+ TAO_NS_Reactive_Task* worker_task;
- PortableServer::ServantBase_var servantbase_var (pc);
+ ACE_NEW_THROW_EX (worker_task,
+ TAO_NS_Reactive_Task (),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
- pc->event_manager_ = sa->event_manager_;
- pc->admin_properties_ = sa->admin_properties_;
- pc->parent_ = sa;
- pc->parent_->_incr_refcnt ();
+ worker_task->init (object.admin_properties_ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
- // self POA, proxy POA
- pc->init (sa->proxy_poa (), sa->proxy_poa (), sa->worker_task ());
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ object.worker_task_own (worker_task);
- // insert proxy in admin container.
- sa->insert (pc ACE_ENV_ARG_PARAMETER);
+ object.worker_task_->_decr_refcnt ();
+}
- CORBA::Object_var obj = pc->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+void
+TAO_NS_Builder::apply_thread_pool_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL)
+{
+ TAO_NS_ThreadPool_Task* worker_task;
- const CosNotification::QoSProperties &default_pc_qos =
- TAO_NS_PROPERTIES::instance ()->default_proxy_consumer_qos_properties ();
+ ACE_NEW_THROW_EX (worker_task,
+ TAO_NS_ThreadPool_Task (),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
- pc->set_qos (default_pc_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ worker_task->init (tp_params, object.admin_properties_ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
- // Pass SA QoS
- sa->qos_properties_.transfer (pc->qos_properties_);
- pc->qos_changed (pc->qos_properties_);
+ object.worker_task_own (worker_task);
- proxy_ret = CosEventChannelAdmin::ProxyPushConsumer::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (proxy_ret._retn ());
+ object.worker_task_->_decr_refcnt ();
+}
- return proxy_ret._retn ();
+void
+TAO_NS_Builder::apply_lane_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolLanesParams& /*tpl_params*/ ACE_ENV_ARG_DECL)
+{
+ // No lane support
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Builder.h b/TAO/orbsvcs/orbsvcs/Notify/Builder.h
index f85e2816b69..6bee188690d 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Builder.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Builder.h
@@ -44,49 +44,67 @@ public:
virtual ~TAO_NS_Builder ();
- ///= Factory Method
- CosNotifyChannelAdmin::EventChannelFactory_ptr build_event_channel_factory (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL);
-
- CosNotifyChannelAdmin::EventChannel_ptr build_event_channel (TAO_NS_EventChannelFactory* ecf, const CosNotification::QoSProperties & initial_qos, const CosNotification::AdminProperties & initial_admin, CosNotifyChannelAdmin::ChannelID_out id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- , CosNotification::UnsupportedQoS
- , CosNotification::UnsupportedAdmin
- ));
-
- CosNotifyChannelAdmin::ConsumerAdmin_ptr build_consumer_admin (TAO_NS_EventChannel* ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
- CosNotifyChannelAdmin::SupplierAdmin_ptr build_supplier_admin (TAO_NS_EventChannel* ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
- CosNotifyChannelAdmin::ProxyConsumer_ptr build_notification_push_consumer (TAO_NS_SupplierAdmin* sa, CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- , CosNotifyChannelAdmin::AdminLimitExceeded
- ));
-
- CosNotifyChannelAdmin::ProxySupplier_ptr build_notification_push_supplier (TAO_NS_ConsumerAdmin* ca, CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- , CosNotifyChannelAdmin::AdminLimitExceeded
- ));
-
- CosNotifyFilter::FilterFactory_ptr build_filter_factory (ACE_ENV_SINGLE_ARG_DECL);
-
- CosEventChannelAdmin::ProxyPushSupplier_ptr build_push_supplier (TAO_NS_ConsumerAdmin* ca ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
- CosEventChannelAdmin::ProxyPushConsumer_ptr build_push_consumer (TAO_NS_SupplierAdmin* sa ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
+ ///= Factory Methods
+
+ /// Build EventChannel Factory.
+ virtual CosNotifyChannelAdmin::EventChannelFactory_ptr
+ build_event_channel_factory (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL);
+
+ /// Build the Filter Factory.
+ virtual CosNotifyFilter::FilterFactory_ptr build_filter_factory (ACE_ENV_SINGLE_ARG_DECL);
+
+ /// Build EventChannel.
+ virtual CosNotifyChannelAdmin::EventChannel_ptr
+ build_event_channel (TAO_NS_EventChannelFactory* ecf
+ , const CosNotification::QoSProperties & initial_qos
+ , const CosNotification::AdminProperties & initial_admin
+ , CosNotifyChannelAdmin::ChannelID_out id
+ ACE_ENV_ARG_DECL);
+
+ /// Build ConsumerAdmin
+ virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr
+ build_consumer_admin (TAO_NS_EventChannel* ec
+ , CosNotifyChannelAdmin::InterFilterGroupOperator op
+ , CosNotifyChannelAdmin::AdminID_out id
+ ACE_ENV_ARG_DECL);
+
+ /// Build SupplierAdmin
+ virtual CosNotifyChannelAdmin::SupplierAdmin_ptr
+ build_supplier_admin (TAO_NS_EventChannel* ec
+ , CosNotifyChannelAdmin::InterFilterGroupOperator op
+ , CosNotifyChannelAdmin::AdminID_out id
+ ACE_ENV_ARG_DECL);
+
+ /// Build ProxyConsumer
+ virtual CosNotifyChannelAdmin::ProxyConsumer_ptr
+ build_proxy (TAO_NS_SupplierAdmin* sa
+ , CosNotifyChannelAdmin::ClientType ctype
+ , CosNotifyChannelAdmin::ProxyID_out proxy_id
+ ACE_ENV_ARG_DECL);
+
+ /// Build ProxySupplier.
+ virtual CosNotifyChannelAdmin::ProxySupplier_ptr
+ build_proxy (TAO_NS_ConsumerAdmin* ca
+ , CosNotifyChannelAdmin::ClientType ctype
+ , CosNotifyChannelAdmin::ProxyID_out proxy_id
+ ACE_ENV_ARG_DECL);
+
+ /// Build CosEC style ProxySupplier.
+ virtual CosEventChannelAdmin::ProxyPushSupplier_ptr
+ build_proxy (TAO_NS_ConsumerAdmin* ca ACE_ENV_ARG_DECL);
+
+ /// Build CosEC style ProxyConsumer.
+ virtual CosEventChannelAdmin::ProxyPushConsumer_ptr
+ build_proxy (TAO_NS_SupplierAdmin* sa ACE_ENV_ARG_DECL);
+
+ /// Apply Reactive concurrency.
+ virtual void apply_reactive_concurrency (TAO_NS_Object& object ACE_ENV_ARG_DECL);
+
+ /// Apply Thread Pools.
+ virtual void apply_thread_pool_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL);
+
+ /// Apply Thread Pools with Lanes.
+ virtual void apply_lane_concurrency (TAO_NS_Object& object, const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL);
};
#if defined (__ACE_INLINE__)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Consumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Consumer.cpp
index 9924c38d391..2210c3ca7ad 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Consumer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Consumer.cpp
@@ -11,12 +11,6 @@ ACE_RCSID(RT_Notify, TAO_NS_Consumer, "$Id$")
#include "ace/Refcounted_Auto_Ptr.h"
#include "ace/Unbounded_Queue.h"
#include "tao/debug.h"
-#include "ProxySupplier.h"
-#include "Proxy.h"
-#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
TAO_NS_Consumer::TAO_NS_Consumer (TAO_NS_ProxySupplier* proxy)
:proxy_ (proxy), event_collection_ (0), is_suspended_ (0)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Consumer.h b/TAO/orbsvcs/orbsvcs/Notify/Consumer.h
index 0a72eaadce0..9537e8f3398 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Consumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Consumer.h
@@ -23,7 +23,6 @@
#include "orbsvcs/CosNotificationC.h"
#include "Peer.h"
#include "Event.h"
-#include "Types.h"
class TAO_NS_ProxySupplier;
class TAO_NS_Proxy;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp
index dea48b705b0..02aa8cceee6 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.cpp
@@ -8,18 +8,26 @@
ACE_RCSID(RT_Notify, TAO_NS_ConsumerAdmin, "$Id$")
+#include "ace/Auto_Ptr.h"
#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
-#include "Builder.h"
#include "Subscription_Change_Worker.h"
#include "Proxy.h"
-#include "Admin.h"
#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
#include "Properties.h"
+#include "Factory.h"
+#include "Builder.h"
+#include "Find_Worker_T.h"
+#include "Seq_Worker_T.h"
+
+typedef TAO_NS_Find_Worker_T<TAO_NS_Proxy
+ , CosNotifyChannelAdmin::ProxySupplier
+ , CosNotifyChannelAdmin::ProxySupplier_ptr
+ , CosNotifyChannelAdmin::ProxyNotFound>
+TAO_NS_ProxySupplier_Find_Worker;
+
+typedef TAO_NS_Seq_Worker_T<TAO_NS_Proxy> TAO_NS_Proxy_Seq_Worker;
TAO_NS_ConsumerAdmin::TAO_NS_ConsumerAdmin (void)
-:TAO_NS_Admin (TAO_NS_Admin::CONSUMER_ADMIN)
{
}
@@ -27,10 +35,16 @@ TAO_NS_ConsumerAdmin::~TAO_NS_ConsumerAdmin ()
{
}
-PortableServer::Servant
-TAO_NS_ConsumerAdmin::servant (void)
+void
+TAO_NS_ConsumerAdmin::init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL)
{
- return this;
+ TAO_NS_Admin::init (ec ACE_ENV_ARG_PARAMETER);
+
+ const CosNotification::QoSProperties &default_ca_qos =
+ TAO_NS_PROPERTIES::instance ()->default_consumer_admin_qos_properties ();
+
+ this->set_qos (default_ca_qos ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
}
void
@@ -58,10 +72,16 @@ TAO_NS_ConsumerAdmin::destroy (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
+
+ this->ec_->remove (this ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
}
-::CosNotifyChannelAdmin::ProxySupplier_ptr
+CosNotifyChannelAdmin::ProxySupplier_ptr
TAO_NS_ConsumerAdmin::obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype,
CosNotifyChannelAdmin::ProxyID_out proxy_id
ACE_ENV_ARG_DECL
@@ -71,9 +91,19 @@ TAO_NS_ConsumerAdmin::obtain_notification_push_supplier (CosNotifyChannelAdmin::
, CosNotifyChannelAdmin::AdminLimitExceeded
))
{
- return TAO_NS_PROPERTIES::instance()->builder ()->build_notification_push_supplier (this,
- ctype,
- proxy_id ACE_ENV_ARG_PARAMETER);
+ return TAO_NS_PROPERTIES::instance()->builder()->build_proxy (this
+ , ctype
+ , proxy_id
+ ACE_ENV_ARG_PARAMETER);
+}
+
+CosEventChannelAdmin::ProxyPushSupplier_ptr
+TAO_NS_ConsumerAdmin::obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ return TAO_NS_PROPERTIES::instance()->builder()->build_proxy (this ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::AdminID
@@ -91,10 +121,7 @@ TAO_NS_ConsumerAdmin::MyChannel (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- CORBA::Object_var object = this->parent_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannel::_nil ());
-
- return CosNotifyChannelAdmin::EventChannel::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
+ return this->ec_->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
}
::CosNotifyChannelAdmin::InterFilterGroupOperator
@@ -112,25 +139,9 @@ TAO_NS_ConsumerAdmin::push_suppliers (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- CosNotifyChannelAdmin::ProxyIDSeq* seq_ptr;
-
- ACE_NEW_THROW_EX (seq_ptr,
- CosNotifyChannelAdmin::ProxyIDSeq (),
- CORBA::NO_MEMORY ());
+ TAO_NS_Proxy_Seq_Worker seq_worker;
- CosNotifyChannelAdmin::ProxyIDSeq_var seq (seq_ptr);
-
- seq->length (this->proxy_id_list_.size ());
-
- TAO_NS_EventChannelFactory::TAO_NS_Object_Id_Seq::CONST_ITERATOR iter (this->proxy_id_list_);
-
- TAO_NS_Object_Id* object_id;
-
- CORBA::ULong i = 0;
- for (iter.first (); iter.next (object_id); iter.advance (), ++i)
- seq[i] = *object_id;
-
- return seq._retn ();
+ return seq_worker.create (*this->proxy_container_ ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::ProxySupplier_ptr
@@ -140,27 +151,9 @@ TAO_NS_ConsumerAdmin::get_proxy_supplier (CosNotifyChannelAdmin::ProxyID proxy_i
, CosNotifyChannelAdmin::ProxyNotFound
))
{
- TAO_NS_Object* ns_object = this->find (proxy_id ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxySupplier::_nil ());
-
- if (ns_object != 0)
- {
- CORBA::Object_var object = ns_object->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxySupplier::_nil ());
-
- return CosNotifyChannelAdmin::ProxySupplier::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
- }
- else
- ACE_THROW_RETURN (CosNotifyChannelAdmin::ProxyNotFound (), CosNotifyChannelAdmin::ProxySupplier::_nil ());
-}
+ TAO_NS_ProxySupplier_Find_Worker find_worker;
-CosEventChannelAdmin::ProxyPushSupplier_ptr
-TAO_NS_ConsumerAdmin::obtain_push_supplier (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- return TAO_NS_PROPERTIES::instance()->builder ()->build_push_supplier (this ACE_ENV_ARG_PARAMETER);
+ return find_worker.resolve (proxy_id, *this->proxy_container_ ACE_ENV_ARG_PARAMETER);
}
void TAO_NS_ConsumerAdmin::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL)
@@ -201,11 +194,11 @@ TAO_NS_ConsumerAdmin::subscription_change (const CosNotification::EventTypeSeq &
ACE_CHECK;
this->subscribed_types_.init (seq_added, seq_removed);
- }
- TAO_NS_Subscription_Change_Worker worker (added, removed);
+ TAO_NS_Subscription_Change_Worker worker (added, removed);
- this->collection_->for_each (&worker ACE_ENV_ARG_PARAMETER);
+ this->proxy_container_->collection()->for_each (&worker ACE_ENV_ARG_PARAMETER);
+ }
}
CosNotifyFilter::FilterID
@@ -338,3 +331,19 @@ TAO_NS_ConsumerAdmin::obtain_pull_supplier (ACE_ENV_SINGLE_ARG_DECL)
{
ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosEventChannelAdmin::ProxyPullSupplier::_nil ());
}
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class TAO_NS_Find_Worker_T<TAO_NS_Proxy
+ , CosNotifyChannelAdmin::ProxySupplier
+ , CosNotifyChannelAdmin::ProxySupplier_ptr
+ , CosNotifyChannelAdmin::ProxyNotFound>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_Proxy
+ , CosNotifyChannelAdmin::ProxySupplier
+ , CosNotifyChannelAdmin::ProxySupplier_ptr
+ , CosNotifyChannelAdmin::ProxyNotFound>
+
+#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.h b/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.h
index 32470332213..4c4244c5a4f 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/ConsumerAdmin.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyChannelAdminS.h"
#include "Admin.h"
-#include "Destroy_Callback.h"
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
@@ -36,25 +35,24 @@
* @brief Implementation of CosNotifyChannelAdmin::ConsumerAdmin
*
*/
-class TAO_Notify_Export TAO_NS_ConsumerAdmin : public POA_CosNotifyChannelAdmin::ConsumerAdmin, public virtual TAO_NS_Admin, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_ConsumerAdmin : public POA_CosNotifyChannelAdmin::ConsumerAdmin
+ , public virtual TAO_NS_Admin
{
- friend class TAO_NS_Builder;
public:
-
/// Constuctor
TAO_NS_ConsumerAdmin (void);
/// Destructor
~TAO_NS_ConsumerAdmin ();
- /// Return servant
- virtual PortableServer::Servant servant (void);
+ /// Init
+ void init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL);
/// ServantBase refcount methods.
virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL);
virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
- /// TAO_NS_Destroy_Callback methods
+ /// Release this object.
virtual void release (void);
protected:
@@ -117,17 +115,19 @@ protected:
, CosNotifyChannelAdmin::ProxyNotFound
));
- virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr obtain_notification_pull_supplier (CosNotifyChannelAdmin::ClientType ctype,
- CosNotifyChannelAdmin::ProxyID_out proxy_id
- ACE_ENV_ARG_DECL)
+ virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr
+ obtain_notification_pull_supplier (CosNotifyChannelAdmin::ClientType ctype,
+ CosNotifyChannelAdmin::ProxyID_out proxy_id
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
, CosNotifyChannelAdmin::AdminLimitExceeded
));
- virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype,
- CosNotifyChannelAdmin::ProxyID_out proxy_id
- ACE_ENV_ARG_DECL)
+ virtual ::CosNotifyChannelAdmin::ProxySupplier_ptr
+ obtain_notification_push_supplier (CosNotifyChannelAdmin::ClientType ctype,
+ CosNotifyChannelAdmin::ProxyID_out proxy_id
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
, CosNotifyChannelAdmin::AdminLimitExceeded
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Consumer_Map.h b/TAO/orbsvcs/orbsvcs/Notify/Consumer_Map.h
new file mode 100644
index 00000000000..ca248f949a4
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Consumer_Map.h
@@ -0,0 +1,36 @@
+/* -*- C++ -*- */
+/**
+ * @file Consumer_Map.h
+ *
+ * $Id$
+ *
+ * @author Pradeep Gore <pradeep@oomworks.com>
+ *
+ *
+ */
+
+#ifndef TAO_NS_CONSUMER_MAP_H
+#define TAO_NS_CONSUMER_MAP_H
+#include "ace/pre.h"
+
+#include "notify_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+#include "Event_Map_T.h"
+#include "ProxySupplier.h"
+
+/**
+ * @class TAO_NS_Consumer_Map
+ *
+ * @brief The Event Map for Consumers.
+ *
+ */
+
+typedef TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX> TAO_NS_Consumer_Map;
+
+#include "ace/post.h"
+#endif /* TAO_NS_CONSUMER_MAP_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container.cpp b/TAO/orbsvcs/orbsvcs/Notify/Container.cpp
deleted file mode 100644
index 858d38c58da..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Container.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// $Id$
-
-#include "Container.h"
-#include "ThreadPool_Task.h"
-#include "POA_Helper.h"
-
-#if ! defined (__ACE_INLINE__)
-#include "Container.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(RT_Notify, TAO_NS_Container, "$Id$")
-
-TAO_NS_Container::TAO_NS_Container (void)
- :object_poa_ (0), delete_object_poa_ (0)
-{
-}
-
-TAO_NS_Container::~TAO_NS_Container ()
-{
-}
-
-void
-TAO_NS_Container::init (TAO_NS_POA_Helper* poa, TAO_NS_Worker_Task* worker_task, TAO_NS_POA_Helper* object_poa, TAO_NS_POA_Helper* proxy_poa)
-{
- TAO_NS_Object::init (poa, proxy_poa, worker_task);
-
- object_poa_ = object_poa;
-}
-
-void
-TAO_NS_Container::cleanup (ACE_ENV_SINGLE_ARG_DECL)
-{
- if (delete_object_poa_ == 1)
- {
- object_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
- delete object_poa_;
- }
-}
-
-void
-TAO_NS_Container::object_poa (TAO_NS_POA_Helper* object_poa)
-{
- object_poa_ = object_poa;
- delete_object_poa_ = 1;
-}
-
-TAO_NS_POA_Helper*
-TAO_NS_Container::object_poa (void)
-{
- return this->object_poa_;
-}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container.h b/TAO/orbsvcs/orbsvcs/Notify/Container.h
deleted file mode 100644
index 4f227303c1b..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Container.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file Container.h
- *
- * $Id$
- *
- * @author Pradeep Gore <pradeep@oomworks.com>
- *
- *
- */
-
-#ifndef TAO_NS_CONTAINER_H
-#define TAO_NS_CONTAINER_H
-#include "ace/pre.h"
-
-#include "notify_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "orbsvcs/NotifyExtC.h"
-#include "Object.h"
-
-class TAO_NS_POA_Helper;
-class TAO_NS_QoSAdmin;
-
-/**
- * @class TAO_NS_Container
- *
- * @brief A Base class for implementing the Notify participants that behave as Obejct Containers.
- *
- */
-class TAO_Notify_Export TAO_NS_Container : public virtual TAO_NS_Object
-{
-public:
- /// Constuctor
- TAO_NS_Container (void);
-
- /// Destructor
- virtual ~TAO_NS_Container ();
-
- /// Init this object.
- void init (TAO_NS_POA_Helper* poa, TAO_NS_Worker_Task* worker_task, TAO_NS_POA_Helper* object_poa, TAO_NS_POA_Helper* proxy_poa);
-
- /// Cleanup
- void cleanup (ACE_ENV_SINGLE_ARG_DECL);
-
- /// Accessor for the object_poa_
- /// Setting the object_poa_ gives ownership to this class.
- void object_poa (TAO_NS_POA_Helper* object_poa);
- TAO_NS_POA_Helper* object_poa (void);
-
-protected:
- /// = Protected Methods
-
- /// = Data Members
-
- /// The POA in which the object's are activated.
- TAO_NS_POA_Helper* object_poa_;
-
- /// Flag that indicates if we own <object_poa_>
- int delete_object_poa_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "Container.inl"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* TAO_NS_CONTAINER_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Container_T.cpp
index 3004d23da45..ad43477e2da 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Container_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Container_T.cpp
@@ -17,64 +17,40 @@
ACE_RCSID(RT_Notify, TAO_NS_Container_T, "$Id$")
-/*************************************************************************************************/
-
-template<class OBJECT>
-TAO_NS_Object_Find_Worker_T<OBJECT>::TAO_NS_Object_Find_Worker_T (CORBA::Long id)
- :id_ (id), result_ (0)
-{
-}
-
-/*************************************************************************************************/
-
-template<class TYPE, class OBJECT, class PARENT>
-TAO_NS_Container_T<TYPE, OBJECT, PARENT>::TAO_NS_Container_T (void)
+template<class TYPE>
+TAO_NS_Container_T<TYPE>::TAO_NS_Container_T (void)
: collection_ (0)
{
}
-template<class TYPE, class OBJECT, class PARENT>
-TAO_NS_Container_T<TYPE, OBJECT, PARENT>::~TAO_NS_Container_T ()
+template<class TYPE>
+TAO_NS_Container_T<TYPE>::~TAO_NS_Container_T ()
{
+ delete collection_;
}
-template <class TYPE, class OBJECT, class PARENT> int
-TAO_NS_Container_T<TYPE, OBJECT, PARENT>::shutdown (ACE_ENV_SINGLE_ARG_DECL)
+template <class TYPE> void
+TAO_NS_Container_T<TYPE>::shutdown (ACE_ENV_SINGLE_ARG_DECL)
{
- // shutdown baseclass.
- if (TAO_NS_Object_T<OBJECT, PARENT>::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
- return 1;
-
- ACE_CHECK_RETURN (1);
-
- // First inform the children.
TAO_ESF_Shutdown_Proxy<TYPE> shutdown_worker;
this->collection_->for_each (&shutdown_worker ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (1);
-
- /// shutdown Container
- this->cleanup (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- delete collection_;
-
- return 0;
}
-template<class TYPE, class OBJECT, class PARENT> void
-TAO_NS_Container_T<TYPE, OBJECT, PARENT>::insert (TYPE* type ACE_ENV_ARG_DECL)
+template<class TYPE> void
+TAO_NS_Container_T<TYPE>::insert (TYPE* type ACE_ENV_ARG_DECL)
{
this->collection_->connected (type ACE_ENV_ARG_PARAMETER);
}
-template<class TYPE, class OBJECT, class PARENT> void
-TAO_NS_Container_T<TYPE, OBJECT, PARENT>::remove (TYPE* type ACE_ENV_ARG_DECL)
+template<class TYPE> void
+TAO_NS_Container_T<TYPE>::remove (TYPE* type ACE_ENV_ARG_DECL)
{
this->collection_->disconnected (type ACE_ENV_ARG_PARAMETER);
}
-template<class TYPE, class OBJECT, class PARENT> void
-TAO_NS_Container_T<TYPE, OBJECT, PARENT>::init_collection (ACE_ENV_SINGLE_ARG_DECL)
+template<class TYPE> void
+TAO_NS_Container_T<TYPE>::init (ACE_ENV_SINGLE_ARG_DECL)
{
// get the factory
TAO_NS_Factory* factory = TAO_NS_PROPERTIES::instance ()->factory ();
@@ -82,4 +58,5 @@ TAO_NS_Container_T<TYPE, OBJECT, PARENT>::init_collection (ACE_ENV_SINGLE_ARG_DE
// Init variables
factory->create (this->collection_ ACE_ENV_ARG_PARAMETER);
}
+
#endif /* TAO_NS_CONTAINER_T_CPP */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container_T.h b/TAO/orbsvcs/orbsvcs/Notify/Container_T.h
index 39f2c88677f..003bcf55a7d 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Container_T.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Container_T.h
@@ -19,76 +19,43 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "Container.h"
-#include "Object_T.h"
-#include "orbsvcs/ESF/ESF_Worker.h"
-
-/**
- * @class TAO_NS_Container_T
- *
- * @brief
- *
- */
-template <class OBJECT>
-class TAO_Notify_Export TAO_NS_Object_Find_Worker_T : public TAO_ESF_Worker<OBJECT>
-{
- typedef TAO_ESF_Proxy_Collection<OBJECT> COLLECTION;
-
-public:
- /// Constructor
- TAO_NS_Object_Find_Worker_T (TAO_NS_Object_Id id);
-
- /// Find
- OBJECT* find (COLLECTION* collection ACE_ENV_ARG_DECL);
-
-protected:
- ///= TAO_ESF_Worker method
- void work (OBJECT* object ACE_ENV_ARG_DECL);
-
- /// The id we're looking for.
- TAO_NS_Object_Id id_;
-
- /// The result
- OBJECT* result_;
-};
+#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
/**
* @class TAO_NS_Container_T
*
* @brief A template class that manages a collection.
- * TYPE = type of collection, OBJECT = the object, PARENT = parent of object (grandparent of TYPE)
+ * TYPE = type of collection
*
*/
-template <class TYPE, class OBJECT, class PARENT>
-class TAO_Notify_Export TAO_NS_Container_T : public virtual TAO_NS_Object_T<OBJECT, PARENT>, public virtual TAO_NS_Container
+template <class TYPE>
+class TAO_Notify_Export TAO_NS_Container_T
{
- typedef TAO_NS_Object_Find_Worker_T<TYPE> FIND_WORKER;
+ typedef TAO_ESF_Proxy_Collection<TYPE> COLLECTION;
+ public:
-public:
/// Constuctor
TAO_NS_Container_T (void);
/// Destructor
virtual ~TAO_NS_Container_T ();
+ /// Init this object.
+ void init (ACE_ENV_SINGLE_ARG_DECL);
+
/// Insert object to this container.
virtual void insert (TYPE* type ACE_ENV_ARG_DECL);
/// Remove type from container_
virtual void remove (TYPE* type ACE_ENV_ARG_DECL);
- /// Find the Type.
- TYPE* find (TAO_NS_Object_Id id ACE_ENV_ARG_DECL);
-
- /// Init this object.
- void init_collection (ACE_ENV_SINGLE_ARG_DECL);
-
/// Shutdown
- virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
+ virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL);
-protected:
- typedef TAO_ESF_Proxy_Collection<TYPE> COLLECTION;
+ /// Collection
+ COLLECTION* collection (void);
+protected:
/// The collection data structure that we add objects to.
COLLECTION* collection_;
};
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Container_T.inl
index 3f986686772..3bb19f4afb4 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Container_T.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/Container_T.inl
@@ -1,27 +1,7 @@
// $Id$
-/*************************************************************************************************/
-
-template<class OBJECT> ACE_INLINE OBJECT*
-TAO_NS_Object_Find_Worker_T<OBJECT>::find ( ACE_TYPENAME TAO_NS_Object_Find_Worker_T::COLLECTION* collection ACE_ENV_ARG_DECL)
+template<class TYPE> ACE_INLINE TAO_NS_Container_T<TYPE>::COLLECTION*
+TAO_NS_Container_T<TYPE>:: collection (void)
{
- collection->for_each (this ACE_ENV_ARG_PARAMETER);
- return this->result_;
-}
-
-template<class OBJECT> ACE_INLINE void
-TAO_NS_Object_Find_Worker_T<OBJECT>::work (OBJECT* object ACE_ENV_ARG_DECL_NOT_USED)
-{
- if (object->id () == this->id_)
- this->result_ = object;
-}
-
-/*************************************************************************************************/
-
-template<class TYPE, class OBJECT, class PARENT> ACE_INLINE TYPE*
-TAO_NS_Container_T<TYPE, OBJECT, PARENT>::find (TAO_NS_Object_Id id ACE_ENV_ARG_DECL)
-{
- FIND_WORKER find_worker (id);
-
- return find_worker.find (this->collection_ ACE_ENV_ARG_PARAMETER);
+ return this->collection_;
}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp
index 7794ee10956..326efa455fd 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Initializer.cpp
@@ -4,10 +4,10 @@
ACE_RCSID(Notify, TAO_NS_CosNotify_Initializer, "$id$")
-#include "Notify_Service.h"
+#include "CosNotify_Service.h"
TAO_NS_CosNotify_Initializer::TAO_NS_CosNotify_Initializer (void)
{
- ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_TAO_NS_Notify_Service);
+ ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_TAO_CosNotify_Service);
ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_TAO_Notify_Default_EMO_Factory_OLD);
}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp
index 95f798bf589..bec3fca7246 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp
@@ -1,36 +1,32 @@
// $Id$
-#include "Notify_Service.h"
-#include "Builder.h"
+#include "CosNotify_Service.h"
#include "Properties.h"
-#include "Factory.h"
-
+#include "Default_Factory.h"
+#include "Builder.h"
#include "ace/Sched_Params.h"
#include "ace/Arg_Shifter.h"
#include "ace/Dynamic_Service.h"
#include "tao/ORB_Core.h"
+#include "orbsvcs/NotifyExtC.h"
#include "tao/debug.h"
-ACE_RCSID(RT_Notify, TAO_NS_Notify_Service, "$Id$")
-
-TAO_NS_Notify_Service::TAO_NS_Notify_Service (void)
-:factory_ (0), builder_ (0)
-{
-}
+ACE_RCSID(RT_Notify, TAO_CosNotify_Service, "$Id$")
-TAO_NS_Notify_Service::~TAO_NS_Notify_Service ()
+TAO_CosNotify_Service::TAO_CosNotify_Service (void)
+ : factory_ (0)
+ , builder_ (0)
{
- delete factory_;
- delete builder_;
}
-void
-TAO_NS_Notify_Service::_decr_refcnt (void)
+TAO_CosNotify_Service::~TAO_CosNotify_Service ()
{
+ delete this->factory_;
+ delete this->builder_;
}
int
-TAO_NS_Notify_Service::init (int argc, char *argv[])
+TAO_CosNotify_Service::init (int argc, char *argv[])
{
ACE_Arg_Shifter arg_shifter (argc, argv);
@@ -45,6 +41,8 @@ TAO_NS_Notify_Service::init (int argc, char *argv[])
int task_per_proxy = 0;
+ TAO_NS_Properties *properties = TAO_NS_PROPERTIES::instance();
+
while (arg_shifter.is_anything_left ())
{
if (arg_shifter.cur_arg_strncasecmp (ACE_LIB_TEXT("-MTDispatching")) == 0)
@@ -91,7 +89,7 @@ TAO_NS_Notify_Service::init (int argc, char *argv[])
{
arg_shifter.consume_arg ();
- TAO_NS_PROPERTIES::instance()->asynch_updates (1);
+ properties->asynch_updates (1);
}
else if (arg_shifter.cur_arg_strncasecmp (ACE_LIB_TEXT("-AllocateTaskperProxy")) == 0)
{
@@ -100,100 +98,68 @@ TAO_NS_Notify_Service::init (int argc, char *argv[])
}
}
- this->set_event_channel_threads (ec_threads);
+ // Init the EC QoS
+ {
+ CosNotification::QoSProperties qos;
+ this->set_threads (qos, ec_threads);
+ properties->default_event_channel_qos_properties (qos);
+ }
if (task_per_proxy == 0)
{
- this->set_consumer_admin_threads (dispatching_threads + listener_threads);
- this->set_supplier_admin_threads (lookup_threads + source_threads);
+ // Set the per ConsumerAdmin QoS
+ {
+ CosNotification::QoSProperties qos;
+ this->set_threads (qos, dispatching_threads + listener_threads);
+ properties->default_consumer_admin_qos_properties (qos);
+ }
+
+ // Set the per SupplierAdmin QoS
+ {
+ CosNotification::QoSProperties qos;
+ this->set_threads (qos, lookup_threads + source_threads);
+ properties->default_supplier_admin_qos_properties (qos);
+ }
}
else
{
- this->set_proxy_supplier_threads (dispatching_threads + listener_threads);
- this->set_proxy_consumer_threads (source_threads); // lookup thread per proxy doesn't make sense.
+ // Set the per ProxyConsumer QoS
+ {
+ CosNotification::QoSProperties qos;
+ this->set_threads (qos, dispatching_threads + listener_threads);
+ properties->default_proxy_consumer_qos_properties (qos);
+ }
+
+ // Set the per ProxySupplier QoS
+ {
+ CosNotification::QoSProperties qos;
+ this->set_threads (qos, source_threads); // lookup thread per proxy doesn't make sense.
+ properties->default_proxy_supplier_qos_properties (qos);
+ }
}
return 0;
}
void
-TAO_NS_Notify_Service::set_event_channel_threads (int threads)
+TAO_CosNotify_Service::set_threads (CosNotification::QoSProperties &qos, int threads)
{
NotifyExt::ThreadPoolParams tp_params =
{0, (unsigned)threads, 0, 0, 0, 0, 0 };
- CosNotification::QoSProperties qos;
qos.length (1);
qos[0].name = CORBA::string_dup (NotifyExt::ThreadPool);
qos[0].value <<= tp_params;
-
- TAO_NS_PROPERTIES::instance()->default_event_channel_qos_properties (qos);
-}
-
-void
-TAO_NS_Notify_Service::set_consumer_admin_threads (int threads)
-{
- NotifyExt::ThreadPoolParams tp_params =
- {0, (unsigned)threads, 0, 0, 0, 0, 0 };
- CosNotification::QoSProperties qos;
-
- qos.length (1);
- qos[0].name = CORBA::string_dup (NotifyExt::ThreadPool);
- qos[0].value <<= tp_params;
-
- TAO_NS_PROPERTIES::instance()->default_consumer_admin_qos_properties (qos);
-}
-
-void
-TAO_NS_Notify_Service::set_supplier_admin_threads (int threads)
-{
- NotifyExt::ThreadPoolParams tp_params =
- {0, (unsigned)threads, 0, 0, 0, 0, 0 };
- CosNotification::QoSProperties qos;
-
- qos.length (1);
- qos[0].name = CORBA::string_dup (NotifyExt::ThreadPool);
- qos[0].value <<= tp_params;
-
- TAO_NS_PROPERTIES::instance()->default_supplier_admin_qos_properties (qos);
-}
-
-void
-TAO_NS_Notify_Service::set_proxy_consumer_threads (int threads)
-{
- NotifyExt::ThreadPoolParams tp_params =
- {0, (unsigned)threads, 0, 0, 0, 0, 0 };
- CosNotification::QoSProperties qos;
-
- qos.length (1);
- qos[0].name = CORBA::string_dup (NotifyExt::ThreadPool);
- qos[0].value <<= tp_params;
-
- TAO_NS_PROPERTIES::instance()->default_proxy_consumer_qos_properties (qos);
-}
-
-void
-TAO_NS_Notify_Service::set_proxy_supplier_threads (int threads)
-{
- NotifyExt::ThreadPoolParams tp_params =
- {0, (unsigned)threads, 0, 0, 0, 0, 0 };
- CosNotification::QoSProperties qos;
-
- qos.length (1);
- qos[0].name = CORBA::string_dup (NotifyExt::ThreadPool);
- qos[0].value <<= tp_params;
-
- TAO_NS_PROPERTIES::instance()->default_proxy_supplier_qos_properties (qos);
}
int
-TAO_NS_Notify_Service::fini (void)
+TAO_CosNotify_Service::fini (void)
{
return 0;
}
void
-TAO_NS_Notify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL)
+TAO_CosNotify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL)
{
ACE_DEBUG ((LM_DEBUG, "Loading the Cos Notification Service...\n"));
@@ -202,7 +168,7 @@ TAO_NS_Notify_Service::init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Notify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL)
+TAO_CosNotify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL)
{
/// first, init the main thread.
//this->init_main_thread (orb ACE_ENV_ARG_PARAMETER);
@@ -228,8 +194,7 @@ TAO_NS_Notify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL)
properties->sched_policy (orb->orb_core ()->orb_params ()->sched_policy ());
properties->scope_policy (orb->orb_core ()->orb_params ()->scope_policy ());
- // Init the factory and builder
-
+ // Init the factory
this->init_factory (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
@@ -238,7 +203,7 @@ TAO_NS_Notify_Service::init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Notify_Service::init_main_thread (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL_NOT_USED)
+TAO_CosNotify_Service::init_main_thread (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL_NOT_USED)
{
ACE_Sched_Params::Policy sched_policy;
long thr_sched_policy = orb->orb_core ()->orb_params ()->sched_policy ();
@@ -302,18 +267,21 @@ TAO_NS_Notify_Service::init_main_thread (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL_NOT
}
void
-TAO_NS_Notify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL)
+TAO_CosNotify_Service::init_factory (ACE_ENV_SINGLE_ARG_DECL)
{
- ACE_NEW_THROW_EX (this->factory_,
- TAO_NS_Factory (),
- CORBA::NO_MEMORY ());
+ this->factory_ = ACE_Dynamic_Service<TAO_NS_Factory>::instance ("TAO_NS_Factory");
+
+ if (this->factory_ == 0)
+ ACE_NEW_THROW_EX (this->factory_,
+ TAO_NS_Default_Factory (),
+ CORBA::NO_MEMORY ());
ACE_CHECK;
TAO_NS_PROPERTIES::instance()->factory (this->factory_);
}
void
-TAO_NS_Notify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL)
+TAO_CosNotify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL)
{
ACE_NEW_THROW_EX (this->builder_,
TAO_NS_Builder (),
@@ -324,13 +292,13 @@ TAO_NS_Notify_Service::init_builder (ACE_ENV_SINGLE_ARG_DECL)
}
CosNotifyChannelAdmin::EventChannelFactory_ptr
-TAO_NS_Notify_Service::create (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL)
+TAO_CosNotify_Service::create (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL)
{
return this->builder_->build_event_channel_factory (poa ACE_ENV_ARG_PARAMETER);
}
void
-TAO_NS_Notify_Service::remove (TAO_NS_EventChannelFactory* /*ecf*/ ACE_ENV_ARG_DECL_NOT_USED)
+TAO_CosNotify_Service::remove (TAO_NS_EventChannelFactory* /*ecf*/ ACE_ENV_ARG_DECL_NOT_USED)
{
// NOP.
}
@@ -340,18 +308,30 @@ TAO_NS_Notify_Service::remove (TAO_NS_EventChannelFactory* /*ecf*/ ACE_ENV_ARG_D
ACE_STATIC_SVC_DEFINE (TAO_Notify_Default_EMO_Factory_OLD,
ACE_TEXT (TAO_NOTIFY_DEF_EMO_FACTORY_NAME),
ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (TAO_NS_Notify_Service),
+ &ACE_SVC_NAME (TAO_CosNotify_Service),
ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
0)
/*********************************************************************************************************************/
-ACE_STATIC_SVC_DEFINE (TAO_NS_Notify_Service,
+ACE_STATIC_SVC_DEFINE (TAO_CosNotify_Service,
ACE_TEXT (TAO_NS_COS_NOTIFICATION_SERVICE_NAME),
ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (TAO_NS_Notify_Service),
+ &ACE_SVC_NAME (TAO_CosNotify_Service),
ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
0)
-ACE_FACTORY_DEFINE (TAO_Notify, TAO_NS_Notify_Service)
+
+
+ACE_FACTORY_DEFINE (TAO_Notify, TAO_CosNotify_Service)
/*********************************************************************************************************************/
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class ACE_Dynamic_Service<TAO_NS_Factory>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#pragma instantiate ACE_Dynamic_Service<TAO_NS_Factory>
+
+#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.h b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.h
index ca29c811bb5..afbd64a3bf9 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.h
@@ -1,6 +1,6 @@
/* -*- C++ -*- */
/**
- * @file Notify_Service.h
+ * @file CosNotify_Service.h
*
* $Id$
*
@@ -27,26 +27,24 @@ class TAO_NS_Properties;
class TAO_NS_EventChannelFactory;
/**
- * @class TAO_NS_Notify_Service
+ * @class TAO_CosNotify_Service
*
* @brief A service object for creating the Notify Service Factory.
*
*/
-class TAO_Notify_Export TAO_NS_Notify_Service : public TAO_NS_Service
+class TAO_Notify_Export TAO_CosNotify_Service : public TAO_Notify_Service
{
public:
/// Constuctor
- TAO_NS_Notify_Service (void);
+ TAO_CosNotify_Service (void);
/// Destructor
- virtual ~TAO_NS_Notify_Service ();
+ virtual ~TAO_CosNotify_Service ();
/// = Service_Object virtual method overloads.
virtual int init (int argc, char *argv[]);
virtual int fini (void);
- void _decr_refcnt (void);
-
/// Init
virtual void init (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL);
@@ -60,29 +58,17 @@ protected:
/// Init the data members
virtual void init_i (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL);
- /// Create the Factory for RT Notify objects.
+ /// Create the Factory for Notify objects.
virtual void init_factory (ACE_ENV_SINGLE_ARG_DECL);
- /// Creates the Builder for RT Notify objects.
+ /// Create the Builder for Notify objects.
virtual void init_builder (ACE_ENV_SINGLE_ARG_DECL);
/// Apply ORB Scheduling policy to main thread and set its priority to the lowest available.
void init_main_thread (CORBA::ORB_ptr orb ACE_ENV_ARG_DECL);
- /// Set event channel thread options.
- void set_event_channel_threads (int threads);
-
- /// Set consumer admin thread options.
- void set_consumer_admin_threads (int threads);
-
- /// Set supplier admin thread options.
- void set_supplier_admin_threads (int threads);
-
- /// Set proxy supplier thread options.
- void set_proxy_supplier_threads (int threads);
-
- // Set proxy consumer threads options.
- void set_proxy_consumer_threads (int threads);
+ /// Set thread options on <qos>.
+ void set_threads (CosNotification::QoSProperties &qos, int threads);
/// Service component for object factory operations.
TAO_NS_Factory* factory_;
@@ -91,13 +77,13 @@ protected:
TAO_NS_Builder* builder_;
};
-ACE_STATIC_SVC_DECLARE (TAO_NS_Notify_Service)
-ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_Notify_Service)
+ACE_STATIC_SVC_DECLARE (TAO_CosNotify_Service)
+ACE_FACTORY_DECLARE (TAO_Notify, TAO_CosNotify_Service)
ACE_STATIC_SVC_DECLARE (TAO_Notify_Default_EMO_Factory_OLD)
#if defined (__ACE_INLINE__)
-#include "Notify_Service.inl"
+#include "CosNotify_Service.inl"
#endif /* __ACE_INLINE__ */
#include "ace/post.h"
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Container.inl b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl
index cfa1da318d3..cfa1da318d3 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Container.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.inl
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Factory.cpp b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.cpp
index a54d14dd1f9..1391f6564f7 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.cpp
@@ -1,17 +1,16 @@
// $Id$
-#include "Factory.h"
+#include "Default_Factory.h"
#if ! defined (__ACE_INLINE__)
-#include "Factory.inl"
+#include "Default_Factory.inl"
#endif /* __ACE_INLINE__ */
-ACE_RCSID(RN_Notify, TAO_NS_Factory, "$Id$")
+ACE_RCSID(RN_Notify, TAO_NS_Default_Factory, "$Id$")
#include "orbsvcs/ESF/ESF_Proxy_List.h"
#include "orbsvcs/ESF/ESF_Copy_On_Write.h"
-#include "Notify_Service.h"
#include "EventChannelFactory.h"
#include "EventChannel.h"
#include "Admin.h"
@@ -26,115 +25,76 @@ ACE_RCSID(RN_Notify, TAO_NS_Factory, "$Id$")
#include "Any/CosEC_ProxyPushSupplier.h"
#include "Sequence/SequenceProxyPushConsumer.h"
#include "Sequence/SequenceProxyPushSupplier.h"
+#include "Supplier.h"
-TAO_NS_Factory::TAO_NS_Factory (void)
+template <class PROXY>
+class COW_Collection_Default_Factory
{
-}
-
-TAO_NS_Factory::~TAO_NS_Factory ()
-{
-}
-
-ACE_Lock*
-TAO_NS_Factory::create_object_lock (ACE_ENV_SINGLE_ARG_DECL)
-{
- ACE_Lock* lock;
- ACE_NEW_THROW_EX (lock,
- ACE_Lock_Adapter<TAO_SYNCH_MUTEX> (),
- CORBA::NO_MEMORY ());
- return lock;
-}
-
-void
-TAO_NS_Factory::create (TAO_NS_Peer_Collection*& collection ACE_ENV_ARG_DECL)
+public:
+ typedef TAO_ESF_Proxy_List<PROXY>::Iterator PROXY_ITER;
+ typedef TAO_ESF_Copy_On_Write<PROXY, TAO_ESF_Proxy_List<PROXY>,PROXY_ITER, ACE_SYNCH> COLLECTION;
+ typedef TAO_ESF_Proxy_Collection<PROXY> BASE_COLLECTION;
+
+ void create (BASE_COLLECTION* &collection ACE_ENV_ARG_DECL)
+ {
+ ACE_NEW_THROW_EX (collection,
+ COLLECTION (),
+ CORBA::INTERNAL ());
+ }
+};
+
+TAO_NS_Default_Factory::TAO_NS_Default_Factory (void)
{
- typedef TAO_ESF_Proxy_List<TAO_NS_Peer>::Iterator ProxyIterator;
- typedef TAO_ESF_Copy_On_Write<TAO_NS_Peer, TAO_ESF_Proxy_List<TAO_NS_Peer>,ProxyIterator, ACE_SYNCH> ProxyType;
-
- ACE_NEW_THROW_EX (collection,
- ProxyType (),
- CORBA::NO_MEMORY ());
}
-void
-TAO_NS_Factory::create (TAO_NS_ProxyConsumer_Collection*& collection ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::~TAO_NS_Default_Factory ()
{
- typedef TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>::Iterator ProxyIterator;
- typedef TAO_ESF_Copy_On_Write<TAO_NS_ProxyConsumer, TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>,ProxyIterator, ACE_SYNCH> ProxyType;
-
- ACE_NEW_THROW_EX (collection,
- ProxyType (),
- CORBA::NO_MEMORY ());
}
void
-TAO_NS_Factory::create (TAO_NS_ProxySupplier_Collection*& collection ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_ProxySupplier_Collection* &collection ACE_ENV_ARG_DECL)
{
- typedef TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>::Iterator ProxyIterator;
- typedef TAO_ESF_Copy_On_Write<TAO_NS_ProxySupplier, TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>,ProxyIterator, ACE_SYNCH> ProxyType;
-
- ACE_NEW_THROW_EX (collection,
- ProxyType (),
- CORBA::NO_MEMORY ());
+ COW_Collection_Default_Factory<TAO_NS_ProxySupplier> f;
+ f.create (collection ACE_ENV_ARG_PARAMETER);
}
void
-TAO_NS_Factory::create (TAO_NS_Consumer_Collection*& collection ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_ProxyConsumer_Collection* &collection ACE_ENV_ARG_DECL)
{
- typedef TAO_ESF_Proxy_List<TAO_NS_Consumer>::Iterator ProxyIterator;
- typedef TAO_ESF_Copy_On_Write<TAO_NS_Consumer, TAO_ESF_Proxy_List<TAO_NS_Consumer>,ProxyIterator, ACE_SYNCH> ProxyType;
-
- ACE_NEW_THROW_EX (collection,
- ProxyType (),
- CORBA::NO_MEMORY ());
+ COW_Collection_Default_Factory<TAO_NS_ProxyConsumer> f;
+ f.create (collection ACE_ENV_ARG_PARAMETER);
}
void
-TAO_NS_Factory::create (TAO_NS_Supplier_Collection*& collection ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_EventChannel_Collection* &collection ACE_ENV_ARG_DECL)
{
- typedef TAO_ESF_Proxy_List<TAO_NS_Supplier>::Iterator ProxyIterator;
- typedef TAO_ESF_Copy_On_Write<TAO_NS_Supplier, TAO_ESF_Proxy_List<TAO_NS_Supplier>,ProxyIterator, ACE_SYNCH> ProxyType;
-
- ACE_NEW_THROW_EX (collection,
- ProxyType (),
- CORBA::NO_MEMORY ());
+ COW_Collection_Default_Factory<TAO_NS_EventChannel> f;
+ f.create (collection ACE_ENV_ARG_PARAMETER);
}
void
-TAO_NS_Factory::create (TAO_NS_EventChannel_Collection*& collection ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_ConsumerAdmin_Collection* &collection ACE_ENV_ARG_DECL)
{
- typedef TAO_ESF_Proxy_List<TAO_NS_EventChannel>::Iterator ProxyIterator;
- typedef TAO_ESF_Copy_On_Write<TAO_NS_EventChannel, TAO_ESF_Proxy_List<TAO_NS_EventChannel>,ProxyIterator, ACE_SYNCH> ProxyType;
-
- ACE_NEW_THROW_EX (collection,
- ProxyType (),
- CORBA::NO_MEMORY ());
+ COW_Collection_Default_Factory<TAO_NS_ConsumerAdmin> f;
+ f.create (collection ACE_ENV_ARG_PARAMETER);
}
void
-TAO_NS_Factory::create (TAO_NS_Admin_Collection*& collection ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_SupplierAdmin_Collection* &collection ACE_ENV_ARG_DECL)
{
- typedef TAO_ESF_Proxy_List<TAO_NS_Admin>::Iterator ProxyIterator;
- typedef TAO_ESF_Copy_On_Write<TAO_NS_Admin, TAO_ESF_Proxy_List<TAO_NS_Admin>,ProxyIterator, ACE_SYNCH> ProxyType;
-
- ACE_NEW_THROW_EX (collection,
- ProxyType (),
- CORBA::NO_MEMORY ());
+ COW_Collection_Default_Factory<TAO_NS_SupplierAdmin> f;
+ f.create (collection ACE_ENV_ARG_PARAMETER);
}
void
-TAO_NS_Factory::create (TAO_NS_Proxy_Collection*& collection ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_Proxy_Collection* &collection ACE_ENV_ARG_DECL)
{
- typedef TAO_ESF_Proxy_List<TAO_NS_Proxy>::Iterator ProxyIterator;
- typedef TAO_ESF_Copy_On_Write<TAO_NS_Proxy,TAO_ESF_Proxy_List<TAO_NS_Proxy>,ProxyIterator,ACE_SYNCH> ProxyType;
-
- ACE_NEW_THROW_EX (collection,
- ProxyType (),
- CORBA::NO_MEMORY ());
+ COW_Collection_Default_Factory<TAO_NS_Proxy> f;
+ f.create (collection ACE_ENV_ARG_PARAMETER);
}
void
-TAO_NS_Factory::create (TAO_NS_EventChannelFactory*& factory ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_EventChannelFactory*& factory ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (factory,
TAO_NS_EventChannelFactory (),
@@ -142,7 +102,7 @@ TAO_NS_Factory::create (TAO_NS_EventChannelFactory*& factory ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Factory::create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (channel,
TAO_NS_EventChannel (),
@@ -151,7 +111,7 @@ TAO_NS_Factory::create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL)
void
-TAO_NS_Factory::create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (admin,
TAO_NS_SupplierAdmin (),
@@ -159,7 +119,7 @@ TAO_NS_Factory::create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Factory::create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (admin,
TAO_NS_ConsumerAdmin (),
@@ -167,7 +127,7 @@ TAO_NS_Factory::create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Factory::create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (proxy,
TAO_NS_StructuredProxyPushConsumer (),
@@ -175,7 +135,7 @@ TAO_NS_Factory::create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_D
}
void
-TAO_NS_Factory::create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (proxy,
TAO_NS_StructuredProxyPushSupplier (),
@@ -183,7 +143,7 @@ TAO_NS_Factory::create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_D
}
void
-TAO_NS_Factory::create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (proxy,
TAO_NS_ProxyPushConsumer (),
@@ -191,7 +151,7 @@ TAO_NS_Factory::create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Factory::create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (proxy,
TAO_NS_ProxyPushSupplier (),
@@ -199,7 +159,7 @@ TAO_NS_Factory::create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Factory::create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (proxy,
TAO_NS_CosEC_ProxyPushConsumer (),
@@ -207,7 +167,7 @@ TAO_NS_Factory::create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Factory::create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (proxy,
TAO_NS_CosEC_ProxyPushSupplier (),
@@ -215,7 +175,7 @@ TAO_NS_Factory::create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
}
void
-TAO_NS_Factory::create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (proxy,
TAO_NS_SequenceProxyPushConsumer (),
@@ -223,22 +183,16 @@ TAO_NS_Factory::create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DEC
}
void
-TAO_NS_Factory::create (TAO_NS_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
+TAO_NS_Default_Factory::create (TAO_NS_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
{
ACE_NEW_THROW_EX (proxy,
TAO_NS_SequenceProxyPushSupplier (),
CORBA::NO_MEMORY ());
}
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class TAO_NS_Container_T <TAO_NS_EventChannel,TAO_NS_EventChannelFactory, TAO_NS_Notify_Service>;
-template class TAO_NS_Container_T <TAO_NS_Admin, TAO_NS_EventChannel, TAO_NS_EventChannelFactory>;
-template class TAO_NS_Container_T <TAO_NS_Proxy, TAO_NS_Admin, TAO_NS_EventChannel>;
+ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_Default_Factory)
-template class TAO_NS_Object_T<TAO_NS_EventChannelFactory, TAO_NS_Notify_Service>;
-template class TAO_NS_Object_T <TAO_NS_EventChannel, TAO_NS_EventChannelFactory>;
-template class TAO_NS_Object_T <TAO_NS_Admin, TAO_NS_EventChannel>;
-template class TAO_NS_Object_T <TAO_NS_Proxy, TAO_NS_Admin>;
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template class TAO_NS_ProxySupplier_T <POA_Event_Forwarder::StructuredProxyPushSupplier>;
template class TAO_NS_Proxy_T <POA_Event_Forwarder::StructuredProxyPushSupplier>;
@@ -261,7 +215,8 @@ template class TAO_NS_Proxy_T <POA_CosEventChannelAdmin::ProxyPushConsumer>;
template class TAO_ESF_Proxy_Collection<TAO_NS_ProxyConsumer>;
template class TAO_ESF_Proxy_Collection<TAO_NS_ProxySupplier>;
template class TAO_ESF_Proxy_Collection<TAO_NS_EventChannel>;
-template class TAO_ESF_Proxy_Collection<TAO_NS_Admin>;
+template class TAO_ESF_Proxy_Collection<TAO_NS_ConsumerAdmin>;
+template class TAO_ESF_Proxy_Collection<TAO_NS_SupplierAdmin>;
template class TAO_ESF_Proxy_Collection<TAO_NS_Proxy>;
template class TAO_ESF_Proxy_Collection<TAO_NS_Consumer>;
template class TAO_ESF_Proxy_Collection<TAO_NS_Supplier>;
@@ -281,20 +236,23 @@ template class TAO_ESF_Copy_On_Write<TAO_NS_Supplier, TAO_ESF_Proxy_List<TAO_NS_
template class TAO_ESF_Copy_On_Write<TAO_NS_EventChannel, TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_SYNCH>;
template class TAO_ESF_Copy_On_Write<TAO_NS_ProxyConsumer, TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_SYNCH>;
template class TAO_ESF_Copy_On_Write<TAO_NS_ProxySupplier, TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_SYNCH>;
-template class TAO_ESF_Copy_On_Write<TAO_NS_Admin, TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write<TAO_NS_ConsumerAdmin, TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write<TAO_NS_SupplierAdmin, TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin *>, ACE_SYNCH>;
-template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier*>,ACE_Thread_Mutex>;
-template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>,ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel*>,ACE_Thread_Mutex>;
-template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Admin>,ACE_Unbounded_Set_Iterator<TAO_NS_Admin*>,ACE_Thread_Mutex>;
-template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer*>,ACE_Thread_Mutex>;
-template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>,ACE_Unbounded_Set_Iterator<TAO_NS_Consumer*>,ACE_Thread_Mutex>;
-template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>,ACE_Unbounded_Set_Iterator<TAO_NS_Supplier*>,ACE_Thread_Mutex>;
-template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>,ACE_Unbounded_Set_Iterator<TAO_NS_Peer*>,ACE_Thread_Mutex>;
-template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>,ACE_Unbounded_Set_Iterator<TAO_NS_Proxy*>,ACE_Thread_Mutex>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier*>,TAO_SYNCH_MUTEX>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>,ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel*>,TAO_SYNCH_MUTEX>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>,ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin*>,TAO_SYNCH_MUTEX>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>,ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin*>,TAO_SYNCH_MUTEX>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer*>,TAO_SYNCH_MUTEX>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>,ACE_Unbounded_Set_Iterator<TAO_NS_Consumer*>,TAO_SYNCH_MUTEX>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>,ACE_Unbounded_Set_Iterator<TAO_NS_Supplier*>,TAO_SYNCH_MUTEX>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>,ACE_Unbounded_Set_Iterator<TAO_NS_Peer*>,TAO_SYNCH_MUTEX>;
+template class TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>,ACE_Unbounded_Set_Iterator<TAO_NS_Proxy*>,TAO_SYNCH_MUTEX>;
-template class TAO_ESF_Proxy_List<TAO_NS_Admin>;
+template class TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>;
+template class TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>;
template class TAO_ESF_Proxy_List<TAO_NS_Consumer>;
template class TAO_ESF_Proxy_List<TAO_NS_Supplier>;
template class TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>;
@@ -307,7 +265,8 @@ template class ACE_Unbounded_Set<TAO_NS_Peer *>;
template class ACE_Unbounded_Set<TAO_NS_Supplier *>;
template class ACE_Unbounded_Set<TAO_NS_Consumer *>;
template class ACE_Unbounded_Set<TAO_NS_ProxyConsumer *>;
-template class ACE_Unbounded_Set<TAO_NS_Admin *>;
+template class ACE_Unbounded_Set<TAO_NS_ConsumerAdmin *>;
+template class ACE_Unbounded_Set<TAO_NS_SupplierAdmin *>;
template class ACE_Unbounded_Set<TAO_NS_EventChannel *>;
template class ACE_Unbounded_Set<TAO_NS_Proxy *>;
@@ -316,22 +275,26 @@ template class ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>;
template class ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>;
template class ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>;
template class ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>;
-template class ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>;
+template class ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin *>;
+template class ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin *>;
template class ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>;
template class ACE_Unbounded_Set_Iterator<int>;
-template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>, ACE_MT_SYNCH>;
-template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>, ACE_MT_SYNCH>;
-template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>, ACE_MT_SYNCH>;
-template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>, ACE_MT_SYNCH>;
-template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_MT_SYNCH>;
-template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_MT_SYNCH>;
-template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_MT_SYNCH>;
-template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>, ACE_MT_SYNCH>;
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>, ACE_SYNCH>;
+
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_SYNCH>;
+template class TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>, ACE_SYNCH>;
template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *> >;
template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *> >;
-template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *> >;
+template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin *> >;
+template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin *> >;
template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *> >;
template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *> >;
template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *> >;
@@ -340,15 +303,6 @@ template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Proxy>
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate TAO_NS_Container_T <TAO_NS_EventChannel,TAO_NS_EventChannelFactory, TAO_NS_Notify_Service>
-#pragma instantiate TAO_NS_Container_T <TAO_NS_Admin, TAO_NS_EventChannel, TAO_NS_EventChannelFactory>
-#pragma instantiate TAO_NS_Container_T <TAO_NS_Proxy, TAO_NS_Admin, TAO_NS_EventChannel>
-
-#pragma instantiate TAO_NS_Object_T<TAO_NS_EventChannelFactory, TAO_NS_Notify_Service>
-#pragma instantiate TAO_NS_Object_T <TAO_NS_EventChannel, TAO_NS_EventChannelFactory>
-#pragma instantiate TAO_NS_Object_T <TAO_NS_Admin, TAO_NS_EventChannel>
-#pragma instantiate TAO_NS_Object_T <TAO_NS_Proxy, TAO_NS_Admin>
-
#pragma instantiate TAO_NS_ProxySupplier_T <POA_Event_Forwarder::StructuredProxyPushSupplier>
#pragma instantiate TAO_NS_Proxy_T <POA_Event_Forwarder::StructuredProxyPushSupplier>
#pragma instantiate TAO_NS_ProxySupplier_T <POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>
@@ -370,7 +324,8 @@ template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Proxy>
#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_ProxyConsumer>
#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_ProxySupplier>
#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_EventChannel>
-#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Admin>
+#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_ConsumerAdmin>
+#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_SupplierAdmin>
#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Proxy>
#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Consumer>
#pragma instantiate TAO_ESF_Proxy_Collection<TAO_NS_Supplier>
@@ -390,20 +345,22 @@ template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Proxy>
#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_EventChannel, TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_SYNCH>
#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_ProxyConsumer, TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_SYNCH>
#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_ProxySupplier, TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_Admin, TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_ConsumerAdmin, TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write<TAO_NS_SupplierAdmin, TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin *>, ACE_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier*>,ACE_Thread_Mutex>
-#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>,ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel*>,ACE_Thread_Mutex>
-#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Admin>,ACE_Unbounded_Set_Iterator<TAO_NS_Admin*>,ACE_Thread_Mutex>
-#pragma instantitae TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer*>,ACE_Thread_Mutex>
-#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>,ACE_Unbounded_Set_Iterator<TAO_NS_Consumer*>,ACE_Thread_Mutex>
-#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>,ACE_Unbounded_Set_Iterator<TAO_NS_Supplier*>,ACE_Thread_Mutex>
-#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>,ACE_Unbounded_Set_Iterator<TAO_NS_Peer*>,ACE_Thread_Mutex>
-#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>,ACE_Unbounded_Set_Iterator<TAO_NS_Proxy*>,ACE_Thread_Mutex>
+#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier*>,ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>,ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel*>,ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>,ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin*>,ACE_SYNCH>#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>,ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin*>,ACE_SYNCH>
+#pragma instantitae TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>,ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer*>,ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>,ACE_Unbounded_Set_Iterator<TAO_NS_Consumer*>,ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>,ACE_Unbounded_Set_Iterator<TAO_NS_Supplier*>,ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>,ACE_Unbounded_Set_Iterator<TAO_NS_Peer*>,ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Read_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>,ACE_Unbounded_Set_Iterator<TAO_NS_Proxy*>,ACE_SYNCH>
-#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_Admin>
+#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>
+#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>
#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_Consumer>
#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_Supplier>
#pragma instantiate TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>
@@ -416,7 +373,8 @@ template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Proxy>
#pragma instantiate ACE_Unbounded_Set<TAO_NS_Supplier *>
#pragma instantiate ACE_Unbounded_Set<TAO_NS_Consumer *>
#pragma instantiate ACE_Unbounded_Set<TAO_NS_ProxyConsumer *>
-#pragma instantiate ACE_Unbounded_Set<TAO_NS_Admin *>
+#pragma instantiate ACE_Unbounded_Set<TAO_NS_ConsumerAdmin *>
+#pragma instantiate ACE_Unbounded_Set<TAO_NS_SupplierAdmin *>
#pragma instantiate ACE_Unbounded_Set<TAO_NS_EventChannel *>
#pragma instantiate ACE_Unbounded_Set<TAO_NS_Proxy *>
@@ -425,22 +383,25 @@ template class TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Proxy>
#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>
#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>
#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>
-#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>
+#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin *>
+#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin *>
#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>
#pragma instantiate ACE_Unbounded_Set_Iterator<int>
-#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>, ACE_MT_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>, ACE_MT_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *>, ACE_MT_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>, ACE_MT_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_MT_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_MT_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_MT_SYNCH>
-#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>, ACE_MT_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Proxy>, ACE_Unbounded_Set_Iterator<TAO_NS_Proxy *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_ProxySupplier>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxySupplier *>, ACE_SYNCH>
+#pragma instantiate TAO_ESF_Copy_On_Write_Write_Guard<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *>, ACE_SYNCH>
#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_ProxyConsumer>, ACE_Unbounded_Set_Iterator<TAO_NS_ProxyConsumer *> >
#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Supplier>, ACE_Unbounded_Set_Iterator<TAO_NS_Supplier *> >
-#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Admin>, ACE_Unbounded_Set_Iterator<TAO_NS_Admin *> >
+#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_ConsumerAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_ConsumerAdmin *> >
+#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_SupplierAdmin>, ACE_Unbounded_Set_Iterator<TAO_NS_SupplierAdmin *> >
#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_EventChannel>, ACE_Unbounded_Set_Iterator<TAO_NS_EventChannel *> >
#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Consumer>, ACE_Unbounded_Set_Iterator<TAO_NS_Consumer *> >
#pragma instantiate TAO_ESF_Copy_On_Write_Collection<TAO_ESF_Proxy_List<TAO_NS_Peer>, ACE_Unbounded_Set_Iterator<TAO_NS_Peer *> >
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.h
new file mode 100644
index 00000000000..61f7086bf5e
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.h
@@ -0,0 +1,101 @@
+/* -*- C++ -*- */
+/**
+ * @file Default_Factory.h
+ *
+ * $Id$
+ *
+ * @author Pradeep Gore <pradeep@oomworks.com>
+ *
+ *
+ */
+
+#ifndef TAO_NS_DEFAULT_FACTORY_H
+#define TAO_NS_DEFAULT_FACTORY_H
+#include "ace/pre.h"
+
+#include "notify_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Factory.h"
+
+/**
+ * @class TAO_NS_Default_Factory
+ *
+ * @brief Default_Factory interface for creating Notify Objects.
+ *
+ */
+class TAO_Notify_Export TAO_NS_Default_Factory : public TAO_NS_Factory
+{
+public:
+ /// Constructor
+ TAO_NS_Default_Factory (void);
+
+ /// Destructor
+ virtual ~TAO_NS_Default_Factory ();
+
+ /// Create ProxySupplier Collection
+ virtual void create (TAO_NS_ProxySupplier_Collection*& collection ACE_ENV_ARG_DECL);
+
+ /// Create ProxyConsumer Collection
+ virtual void create (TAO_NS_ProxyConsumer_Collection*& collection ACE_ENV_ARG_DECL);
+
+ /// Create EventChannel Collection
+ virtual void create (TAO_NS_EventChannel_Collection*& collection ACE_ENV_ARG_DECL);
+
+ /// Create ConsumerAdmin Collection
+ virtual void create (TAO_NS_ConsumerAdmin_Collection*& collection ACE_ENV_ARG_DECL);
+
+ /// Create SupplierAdmin Collection
+ virtual void create (TAO_NS_SupplierAdmin_Collection*& collection ACE_ENV_ARG_DECL);
+
+ /// Create Proxy Collection
+ virtual void create (TAO_NS_Proxy_Collection*& collection ACE_ENV_ARG_DECL);
+
+ /// Create EventChannelDefault_Factory
+ virtual void create (TAO_NS_EventChannelFactory*& channel_factory ACE_ENV_ARG_DECL);
+
+ /// Create EventChannel
+ virtual void create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL);
+
+ /// Create SupplierAdmin
+ virtual void create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL);
+
+ /// Create ConsumerAdmin
+ virtual void create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL);
+
+ /// Create ProxyPushConsumer
+ virtual void create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL);
+
+ /// Create ProxyPushSupplier
+ virtual void create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL);
+
+ /// Create CosEC_ProxyPushConsumer
+ virtual void create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL);
+
+ /// Create CosEC_ProxyPushSupplier
+ virtual void create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL);
+
+ /// Create StructuredProxyPushConsumer
+ virtual void create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL);
+
+ /// Create StructuredProxyPushSupplier
+ virtual void create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL);
+
+ /// Create SequenceProxyPushConsumer
+ virtual void create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL);
+
+ /// Create SequenceProxyPushSupplier
+ virtual void create (TAO_NS_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL);
+};
+
+ACE_FACTORY_DECLARE (TAO_Notify, TAO_NS_Default_Factory)
+
+#if defined (__ACE_INLINE__)
+#include "Default_Factory.inl"
+#endif /* __ACE_INLINE__ */
+
+#include "ace/post.h"
+#endif /* TAO_NS_DEFAULT_FACTORY_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Factory.inl b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.inl
index cfa1da318d3..cfa1da318d3 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Factory.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/Default_Factory.inl
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Destroy_Callback.h b/TAO/orbsvcs/orbsvcs/Notify/Destroy_Callback.h
deleted file mode 100644
index 6f8fda43604..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Destroy_Callback.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file Destroy_Callback.h
- *
- * $Id$
- *
- * @author Pradeep Gore <pradeep@oomworks.com>
- *
- *
- */
-
-#ifndef TAO_NS_DESTROY_CALLBACK_H
-#define TAO_NS_DESTROY_CALLBACK_H
-#include "ace/pre.h"
-
-#include "notify_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/**
- * @class TAO_NS_Destroy_Callback
- *
- * @brief Interface to be implemented by users of TAO_NS_Refcountable
- *
- */
-class TAO_Notify_Export TAO_NS_Destroy_Callback
-{
-public:
-
- /// Called when Refcountable count drops to 0
- virtual void release (void) = 0;
-};
-
-
-#include "ace/post.h"
-#endif /* TAO_NS_DESTROY_CALLBACK_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp
index df575458c46..244cd57d7f5 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp
@@ -13,19 +13,28 @@ ACE_RCSID(Notify, TAO_ETCL_Filter, "$id$")
#include "Notify_Constraint_Visitors.h"
TAO_NS_ETCL_Filter::TAO_NS_ETCL_Filter (void)
+ :constraint_expr_ids_ (0)
{
}
TAO_NS_ETCL_Filter::~TAO_NS_ETCL_Filter ()
{
- ACE_DECLARE_NEW_CORBA_ENV;
- this->remove_all_constraints (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- if (TAO_debug_level > 0)
+ ACE_TRY_NEW_ENV
{
- ACE_DEBUG ((LM_DEBUG, "Filter Destroyed\n"));
+ this->remove_all_constraints (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ ACE_CATCHANY
+ {
+ if (TAO_debug_level)
+ ACE_DEBUG ((LM_DEBUG, "Error in Filter dtor\n"));
+
+ // @@ eat exception.
}
+ ACE_ENDTRY;
+
+ if (TAO_debug_level > 1)
+ ACE_DEBUG ((LM_DEBUG, "Filter Destroyed\n"));
}
char*
@@ -39,55 +48,40 @@ TAO_NS_ETCL_Filter::constraint_grammar (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
void
TAO_NS_ETCL_Filter::add_constraints_i (const CosNotifyFilter::ConstraintInfoSeq& constraint_info_seq
- ACE_ENV_ARG_DECL
- )
+ ACE_ENV_ARG_DECL
+ )
ACE_THROW_SPEC ((
CORBA::SystemException,
CosNotifyFilter::InvalidConstraint
))
{
- for (CORBA::ULong index = 0;
- index < constraint_info_seq.length ();
- ++index)
+ for (CORBA::ULong index = 0; index < constraint_info_seq.length (); ++index)
{
TAO_NS_Constraint_Expr* notify_constr_expr;
- ACE_TRY
- {
- ACE_NEW_THROW_EX (notify_constr_expr,
- TAO_NS_Constraint_Expr (),
- CORBA::NO_MEMORY ());
+ ACE_NEW_THROW_EX (notify_constr_expr,
+ TAO_NS_Constraint_Expr (),
+ CORBA::NO_MEMORY ());
+ auto_ptr <TAO_NS_Constraint_Expr> auto_expr (notify_constr_expr);
- const CosNotifyFilter::ConstraintExp& expr =
- constraint_info_seq[index].constraint_expression;
+ const CosNotifyFilter::ConstraintExp& expr =
+ constraint_info_seq[index].constraint_expression;
- notify_constr_expr->interpreter.build_tree (
- expr.constraint_expr.in ()
- ACE_ENV_ARG_PARAMETER
- );
- ACE_TRY_CHECK;
+ notify_constr_expr->interpreter.
+ build_tree (expr.constraint_expr.in () ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
- notify_constr_expr->constr_expr = expr;
+ notify_constr_expr->constr_expr = expr;
- CosNotifyFilter::ConstraintID cnstr_id = ++constraint_expr_ids_;
+ CosNotifyFilter::ConstraintID cnstr_id = ++constraint_expr_ids_;
- if (this->constraint_expr_list_.bind (cnstr_id, notify_constr_expr)
- == -1)
- {
- ACE_THROW (CORBA::NO_RESOURCES ());
- }
+ if (this->constraint_expr_list_.bind (cnstr_id, notify_constr_expr) == -1)
+ ACE_THROW (CORBA::INTERNAL ());
- if (TAO_debug_level > 0)
- ACE_DEBUG ((LM_DEBUG, "Added constraint to filter %x\n", this, expr.constraint_expr.in ()));
- }
- ACE_CATCHANY
- {
- // Delete the one that failed us.
- delete notify_constr_expr;
- ACE_RE_THROW;
- }
- ACE_ENDTRY;
- ACE_CHECK;
+ if (TAO_debug_level > 1)
+ ACE_DEBUG ((LM_DEBUG, "Added constraint to filter %x\n", this, expr.constraint_expr.in ()));
+
+ auto_expr.release ();
}
}
@@ -100,30 +94,30 @@ TAO_NS_ETCL_Filter::add_constraints (const CosNotifyFilter::ConstraintExpSeq& co
CosNotifyFilter::InvalidConstraint
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
CORBA::ULong constraint_length = constraint_list.length ();
if (TAO_debug_level > 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "constraint_length = %d\n",
+ ACE_DEBUG ((LM_DEBUG, "constraint_length = %d\n",
constraint_length));
- }
// Create the list that goes out.
- CosNotifyFilter::ConstraintInfoSeq *infoseq;
- ACE_NEW_THROW_EX (infoseq,
+ CosNotifyFilter::ConstraintInfoSeq* infoseq_ptr;
+ ACE_NEW_THROW_EX (infoseq_ptr,
CosNotifyFilter::ConstraintInfoSeq (constraint_length),
CORBA::NO_MEMORY ());
ACE_CHECK_RETURN (0);
+ CosNotifyFilter::ConstraintInfoSeq_var infoseq (infoseq_ptr);
infoseq->length (constraint_length);
- auto_ptr<CosNotifyFilter::ConstraintInfoSeq> auto_infoseq (infoseq);
-
// Populate infoseq.
for (CORBA::ULong pop_index = 0; pop_index < constraint_length; ++pop_index)
{
- (*infoseq)[pop_index].constraint_expression =
+ infoseq[pop_index].constraint_expression =
constraint_list [pop_index];
if (TAO_debug_level > 0)
@@ -135,13 +129,10 @@ TAO_NS_ETCL_Filter::add_constraints (const CosNotifyFilter::ConstraintExpSeq& co
}
}
- this->add_constraints_i (*infoseq
- ACE_ENV_ARG_PARAMETER);
+ this->add_constraints_i (infoseq.in () ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
- auto_infoseq.release ();
-
- return infoseq;
+ return infoseq._retn ();
}
void
@@ -155,6 +146,10 @@ TAO_NS_ETCL_Filter::modify_constraints (const CosNotifyFilter::ConstraintIDSeq &
CosNotifyFilter::ConstraintNotFound
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
// First check if all the ids are valid.
u_int index;
@@ -230,21 +225,25 @@ TAO_NS_ETCL_Filter::modify_constraints (const CosNotifyFilter::ConstraintIDSeq &
}
}
-CosNotifyFilter::ConstraintInfoSeq *
+CosNotifyFilter::ConstraintInfoSeq*
TAO_NS_ETCL_Filter::get_constraints (const CosNotifyFilter::ConstraintIDSeq & id_list
ACE_ENV_ARG_DECL
)
ACE_THROW_SPEC ((CORBA::SystemException,
CosNotifyFilter::ConstraintNotFound))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
// Create the list that goes out.
- CosNotifyFilter::ConstraintInfoSeq *infoseq;
- ACE_NEW_THROW_EX (infoseq,
+ CosNotifyFilter::ConstraintInfoSeq *infoseq_ptr;
+ ACE_NEW_THROW_EX (infoseq_ptr,
CosNotifyFilter::ConstraintInfoSeq (id_list.length ()),
CORBA::NO_MEMORY ());
ACE_CHECK_RETURN (0);
- auto_ptr<CosNotifyFilter::ConstraintInfoSeq> auto_infoseq (infoseq);
+ CosNotifyFilter::ConstraintInfoSeq_var infoseq (infoseq_ptr);
TAO_NS_Constraint_Expr *notify_constr_expr = 0;
@@ -255,33 +254,39 @@ TAO_NS_ETCL_Filter::get_constraints (const CosNotifyFilter::ConstraintIDSeq & id
ACE_THROW_RETURN (CosNotifyFilter::ConstraintNotFound (id_list[index]),
0);
- (*infoseq)[index].constraint_expression =
+ infoseq[index].constraint_expression =
notify_constr_expr->constr_expr;
// Get an id.
- (*infoseq)[index].constraint_id = id_list[index];
+ infoseq[index].constraint_id = id_list[index];
}
- auto_infoseq.release ();
- return infoseq;
+ return infoseq._retn ();
}
CosNotifyFilter::ConstraintInfoSeq *
TAO_NS_ETCL_Filter::get_all_constraints (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
size_t current_size = this->constraint_expr_list_.current_size ();
// Create the list that goes out.
- CosNotifyFilter::ConstraintInfoSeq *infoseq;
- ACE_NEW_THROW_EX (infoseq,
+ CosNotifyFilter::ConstraintInfoSeq *infoseq_ptr;
+ ACE_NEW_THROW_EX (infoseq_ptr,
CosNotifyFilter::ConstraintInfoSeq (current_size),
CORBA::NO_MEMORY ());
ACE_CHECK_RETURN (0);
+ CosNotifyFilter::ConstraintInfoSeq_var infoseq (infoseq_ptr);
+
infoseq->length (current_size);
- CONSTRAINT_EXPR_LIST_ITER iter (this->constraint_expr_list_);
- CONSTRAINT_EXPR_ENTRY *entry;
+
+ CONSTRAINT_EXPR_LIST::ITERATOR iter (this->constraint_expr_list_);
+ CONSTRAINT_EXPR_LIST::ENTRY *entry;
for (u_int index = 0; iter.done () == 0; iter.advance (), ++index)
{
@@ -291,23 +296,34 @@ TAO_NS_ETCL_Filter::get_all_constraints (ACE_ENV_SINGLE_ARG_DECL)
// We want to force the TAO_String_Manager to make a
// copy of the string. It wouldn't unless we coax it to use
// the correct assignment operator.
- (*infoseq)[index].constraint_expression =
+ infoseq[index].constraint_expression =
ACE_static_cast (const CosNotifyFilter::ConstraintExp,
entry->int_id_->constr_expr);
- (*infoseq)[index].constraint_id = entry->ext_id_;
+ infoseq[index].constraint_id = entry->ext_id_;
}
}
- return infoseq;
+ return infoseq._retn ();
+}
+
+void
+TAO_NS_ETCL_Filter::remove_all_constraints (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
+ this->remove_all_constraints_i (ACE_ENV_SINGLE_ARG_PARAMETER);
}
void
-TAO_NS_ETCL_Filter::remove_all_constraints (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+TAO_NS_ETCL_Filter::remove_all_constraints_i (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- CONSTRAINT_EXPR_LIST_ITER iter (this->constraint_expr_list_);
- CONSTRAINT_EXPR_ENTRY *entry;
+ CONSTRAINT_EXPR_LIST::ITERATOR iter (this->constraint_expr_list_);
+ CONSTRAINT_EXPR_LIST::ENTRY *entry;
u_int index;
@@ -326,7 +342,11 @@ void
TAO_NS_ETCL_Filter::destroy (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- this->remove_all_constraints (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
+ this->remove_all_constraints_i (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
PortableServer::POA_var my_POA = _default_POA ();
@@ -338,7 +358,7 @@ TAO_NS_ETCL_Filter::destroy (ACE_ENV_SINGLE_ARG_DECL)
CORBA::Boolean
TAO_NS_ETCL_Filter::match (const CORBA::Any & /*filterable_data */
- ACE_ENV_ARG_DECL)
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException,
CosNotifyFilter::UnsupportedFilterableData))
{
@@ -348,14 +368,18 @@ TAO_NS_ETCL_Filter::match (const CORBA::Any & /*filterable_data */
CORBA::Boolean
TAO_NS_ETCL_Filter::match_structured (const CosNotification::StructuredEvent & filterable_data
- ACE_ENV_ARG_DECL_NOT_USED
+ ACE_ENV_ARG_DECL
)
ACE_THROW_SPEC ((CORBA::SystemException,
CosNotifyFilter::UnsupportedFilterableData))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
// We want to return true if at least one constraint matches.
- CONSTRAINT_EXPR_LIST_ITER iter (this->constraint_expr_list_);
- CONSTRAINT_EXPR_ENTRY *entry;
+ CONSTRAINT_EXPR_LIST::ITERATOR iter (this->constraint_expr_list_);
+ CONSTRAINT_EXPR_LIST::ENTRY *entry;
TAO_NS_Constraint_Visitor visitor;
@@ -423,13 +447,13 @@ TAO_NS_ETCL_Filter::get_callbacks (ACE_ENV_SINGLE_ARG_DECL)
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template class ACE_Hash_Map_Entry<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr *>;
-template class ACE_Hash_Map_Manager<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Manager_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>;
+template class ACE_Hash_Map_Manager<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_SYNCH_NULL_MUTEX>;
+template class ACE_Hash_Map_Manager_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,ACE_SYNCH_NULL_MUTEX>;
+template class ACE_Hash_Map_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_SYNCH_NULL_MUTEX>;
+template class ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,ACE_SYNCH_NULL_MUTEX>;
+template class ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,ACE_SYNCH_NULL_MUTEX>;
+template class ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_SYNCH_NULL_MUTEX>;
+template class ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,ACE_SYNCH_NULL_MUTEX>;
#if !defined (ACE_HAS_STD_TEMPLATE_SPECIALIZATION)
template class ACE_Equal_To<CosNotifyFilter::ConstraintID>;
@@ -444,13 +468,13 @@ template class ACE_Auto_Basic_Ptr<CosNotifyFilter::ConstraintInfoSeq>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#pragma instantiate ACE_Hash_Map_Entry<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*>
-#pragma instantiate ACE_Hash_Map_Manager<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,TAO_SYNCH_MUTEX>
+#pragma instantiate ACE_Hash_Map_Manager<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_SYNCH_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Manager_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,ACE_SYNCH_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_SYNCH_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,ACE_SYNCH_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,ACE_SYNCH_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_SYNCH_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::ConstraintID,TAO_NS_ETCL_Filter::TAO_NS_Constraint_Expr*,ACE_Hash<CosNotifyFilter::ConstraintID>, ACE_Equal_To<CosNotifyFilter::ConstraintID>,ACE_SYNCH_NULL_MUTEX>
#if !defined (ACE_HAS_STD_TEMPLATE_SPECIALIZATION)
#pragma instantiate ACE_Equal_To<CosNotifyFilter::ConstraintID>
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.h b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.h
index 6a6dc6cecbe..6e83250913b 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.h
@@ -131,6 +131,11 @@ private:
CosNotifyFilter::InvalidConstraint
));
+ void remove_all_constraints_i (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ));
+
struct TAO_NS_Constraint_Expr
{
// = DESCRIPTION
@@ -143,24 +148,19 @@ private:
// Constraint Interpreter.
};
+ /// Lock to serialize access to data members.
+ TAO_SYNCH_MUTEX lock_;
+
/// Id generator for ConstraintInfo's.
- ACE_Atomic_Op <TAO_SYNCH_MUTEX, CORBA::Long> constraint_expr_ids_;
+ CORBA::Long constraint_expr_ids_;
/// A list of the constraints stored in this filter.
- ACE_Hash_Map_Manager <CosNotifyFilter::ConstraintID,
- ACE_NESTED_CLASS (TAO_NS_ETCL_Filter, TAO_NS_Constraint_Expr*),
- TAO_SYNCH_MUTEX>
- constraint_expr_list_;
-
- typedef ACE_Hash_Map_Iterator <CosNotifyFilter::ConstraintID,
- ACE_NESTED_CLASS (TAO_NS_ETCL_Filter, TAO_NS_Constraint_Expr*),
- TAO_SYNCH_MUTEX>
- CONSTRAINT_EXPR_LIST_ITER;
-
- typedef ACE_Hash_Map_Entry <CosNotifyFilter::ConstraintID,
- ACE_NESTED_CLASS (TAO_NS_ETCL_Filter,
- TAO_NS_Constraint_Expr*)>
- CONSTRAINT_EXPR_ENTRY;
+ typedef ACE_Hash_Map_Manager <CosNotifyFilter::ConstraintID,
+ ACE_NESTED_CLASS (TAO_NS_ETCL_Filter, TAO_NS_Constraint_Expr*),
+ ACE_SYNCH_NULL_MUTEX>
+ CONSTRAINT_EXPR_LIST;
+
+ CONSTRAINT_EXPR_LIST constraint_expr_list_;
};
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp
index d88d0c65a64..91f08daa78f 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp
@@ -19,8 +19,10 @@ TAO_NS_ETCL_FilterFactory::~TAO_NS_ETCL_FilterFactory ()
}
CosNotifyFilter::FilterFactory_ptr
-TAO_NS_ETCL_FilterFactory::create (ACE_ENV_SINGLE_ARG_DECL)
+TAO_NS_ETCL_FilterFactory::create (PortableServer::POA_var& filter_poa ACE_ENV_ARG_DECL)
{
+ this->filter_poa_ = filter_poa; // save the filter poa.
+
PortableServer::ServantBase_var servant_var (this);
return _this (ACE_ENV_SINGLE_ARG_PARAMETER);
@@ -47,18 +49,16 @@ TAO_NS_ETCL_FilterFactory::create_filter (const char *constraint_grammar ACE_ENV
TAO_NS_ETCL_Filter (),
CORBA::NO_MEMORY ());
- PortableServer::POA_var my_POA = _default_POA ();
-
PortableServer::ServantBase_var filter_var (filter);
PortableServer::ObjectId_var oid =
- my_POA->activate_object (filter
- ACE_ENV_ARG_PARAMETER);
+ this->filter_poa_->activate_object (filter
+ ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ());
CORBA::Object_var obj =
- my_POA->id_to_reference (oid.in ()
- ACE_ENV_ARG_PARAMETER);
+ this->filter_poa_->id_to_reference (oid.in ()
+ ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ());
return CosNotifyFilter::Filter::_narrow (obj.in ()
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h
index d1ab3e4910b..2257259fc0a 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.h
@@ -48,7 +48,7 @@ public:
///= TAO_NS_FilterFactory methods.
- virtual CosNotifyFilter::FilterFactory_ptr create (ACE_ENV_SINGLE_ARG_DECL);
+ virtual CosNotifyFilter::FilterFactory_ptr create (PortableServer::POA_var& filter_poa ACE_ENV_ARG_DECL);
///= CosNotifyFilter::FilterFactory methods
@@ -68,6 +68,10 @@ public:
CORBA::SystemException,
CosNotifyFilter::InvalidGrammar
));
+
+protected:
+ /// The POA in which to activate the Filters.
+ PortableServer::POA_var filter_poa_;
};
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.cpp b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.cpp
index 80bdc5262b1..2ad47c95f8c 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.cpp
@@ -6,42 +6,117 @@
#include "EventChannel.inl"
#endif /* __ACE_INLINE__ */
-#include "Proxy.h"
-#include "Admin.h"
+#include "Container_T.h"
#include "EventChannelFactory.h"
-#include "Notify_Service.h"
+#include "ConsumerAdmin.h"
+#include "SupplierAdmin.h"
#include "Event_Manager.h"
#include "Properties.h"
+#include "Factory.h"
#include "Builder.h"
-#include "ThreadPool_Task.h"
+#include "Find_Worker_T.h"
+#include "Seq_Worker_T.h"
ACE_RCSID(RT_Notify, TAO_NS_EventChannel, "$Id$")
- TAO_NS_EventChannel::TAO_NS_EventChannel (void)
+typedef TAO_NS_Find_Worker_T<TAO_NS_ConsumerAdmin
+ , CosNotifyChannelAdmin::ConsumerAdmin
+ , CosNotifyChannelAdmin::ConsumerAdmin_ptr
+ , CosNotifyChannelAdmin::AdminNotFound>
+TAO_NS_ConsumerAdmin_Find_Worker;
+
+typedef TAO_NS_Find_Worker_T<TAO_NS_SupplierAdmin
+ , CosNotifyChannelAdmin::SupplierAdmin
+ , CosNotifyChannelAdmin::SupplierAdmin_ptr
+ , CosNotifyChannelAdmin::AdminNotFound>
+TAO_NS_SupplierAdmin_Find_Worker;
+
+typedef TAO_NS_Seq_Worker_T<TAO_NS_ConsumerAdmin> TAO_NS_ConsumerAdmin_Seq_Worker;
+typedef TAO_NS_Seq_Worker_T<TAO_NS_SupplierAdmin> TAO_NS_SupplierAdmin_Seq_Worker;
+
+TAO_NS_EventChannel::TAO_NS_EventChannel (void)
+ : ecf_ (0)
+ , ca_container_ (0)
+ , sa_container_ (0)
{
}
TAO_NS_EventChannel::~TAO_NS_EventChannel ()
{
- delete this->event_manager_;
+ delete this->event_manager_; // The EventChannel always owns the EventManager.
+
+ this->ecf_->_decr_refcnt ();
}
void
-TAO_NS_EventChannel::init (ACE_ENV_SINGLE_ARG_DECL)
+TAO_NS_EventChannel::init (TAO_NS_EventChannelFactory* ecf
+ , const CosNotification::QoSProperties & initial_qos
+ , const CosNotification::AdminProperties & initial_admin
+ ACE_ENV_ARG_DECL)
{
- CosNotifyChannelAdmin::AdminID id;
+ this->TAO_NS_Object::init (ecf);
- this->default_consumer_admin_ =
- TAO_NS_PROPERTIES::instance()->builder ()->build_consumer_admin (this, CosNotifyChannelAdmin::OR_OP, id ACE_ENV_ARG_PARAMETER);
+ this->ecf_ = ecf;
- this->default_supplier_admin_ =
- TAO_NS_PROPERTIES::instance()->builder ()->build_supplier_admin (this, CosNotifyChannelAdmin::OR_OP, id ACE_ENV_ARG_PARAMETER);
-}
+ this->ecf_->_incr_refcnt ();
-PortableServer::Servant
-TAO_NS_EventChannel::servant (void)
-{
- return this;
+ // Init ca_container_
+ ACE_NEW_THROW_EX (this->ca_container_,
+ TAO_NS_ConsumerAdmin_Container (),
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
+ this->ca_container_->init (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Init ca_container_
+ ACE_NEW_THROW_EX (this->sa_container_,
+ TAO_NS_SupplierAdmin_Container (),
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
+ this->sa_container_->init (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ TAO_NS_AdminProperties* admin_properties = 0;
+
+ // Set the admin properties.
+ ACE_NEW_THROW_EX (admin_properties,
+ TAO_NS_AdminProperties (),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
+
+ this->admin_properties_ = admin_properties;
+
+ // create the event manager. @@ use factory
+ ACE_NEW_THROW_EX (this->event_manager_,
+ TAO_NS_Event_Manager (),
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
+ this->event_manager_->init (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ const CosNotification::QoSProperties &default_ec_qos =
+ TAO_NS_PROPERTIES::instance ()->default_event_channel_qos_properties ();
+
+ this->set_qos (default_ec_qos ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->set_qos (initial_qos ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->set_admin (initial_admin ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ CosNotifyChannelAdmin::AdminID id;
+
+ // Set the default ConsumerAdmin.
+ this->default_consumer_admin_ = this->new_for_consumers (CosNotifyChannelAdmin::OR_OP, id ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Set the default SupplierAdmin.
+ this->default_supplier_admin_ = this->new_for_suppliers (CosNotifyChannelAdmin::OR_OP, id ACE_ENV_ARG_PARAMETER);
}
void
@@ -63,40 +138,51 @@ TAO_NS_EventChannel::release (void)
//@@ inform factory
}
+int
+TAO_NS_EventChannel::shutdown (ACE_ENV_SINGLE_ARG_DECL)
+{
+ if (TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return 1;
+
+ this->ca_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (1);
+
+ this->sa_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (1);
+
+ delete this->ca_container_;
+ delete this->sa_container_;
+
+ this->event_manager_->shutdown ();
+
+ return 0;
+}
+
void
TAO_NS_EventChannel::destroy (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
))
{
- if (this->inherited::destroy (this ACE_ENV_ARG_PARAMETER) == 1)
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
return;
- this->event_manager_->shutdown ();
+ ACE_CHECK;
+
+ this->ecf_->remove (this ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
}
void
-TAO_NS_EventChannel::insert (TAO_NS_Admin* admin ACE_ENV_ARG_DECL)
+TAO_NS_EventChannel::remove (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL)
{
- inherited::insert (admin ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (admin->type () == TAO_NS_Admin::CONSUMER_ADMIN)
- this->consumer_admin_id_list_.insert (admin->id ());
- else
- this->supplier_admin_id_list_.insert (admin->id ());
+ this->ca_container_->remove (consumer_admin ACE_ENV_ARG_PARAMETER);
}
void
-TAO_NS_EventChannel::remove (TAO_NS_Admin* admin ACE_ENV_ARG_DECL)
+TAO_NS_EventChannel::remove (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_ARG_DECL)
{
- inherited::remove (admin ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (admin->type () == TAO_NS_Admin::CONSUMER_ADMIN)
- this->consumer_admin_id_list_.remove (admin->id ());
- else
- this->supplier_admin_id_list_.remove (admin->id ());
+ this->sa_container_->remove (supplier_admin ACE_ENV_ARG_PARAMETER);
}
void
@@ -124,15 +210,7 @@ TAO_NS_EventChannel::MyFactory (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- CORBA::Object_var object = this->parent_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannelFactory::_nil ());
-
- CosNotifyChannelAdmin::EventChannelFactory_var ecf_ret;
-
- ecf_ret = CosNotifyChannelAdmin::EventChannelFactory::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannelFactory::_nil ());
-
- return ecf_ret._retn ();
+ return this->ecf_->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
}
CosNotifyChannelAdmin::ConsumerAdmin_ptr
@@ -158,7 +236,7 @@ TAO_NS_EventChannel::default_supplier_admin (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
CORBA::SystemException
))
{
- return this->parent_->get_default_filter_factory (ACE_ENV_SINGLE_ARG_PARAMETER);
+ return this->ecf_->get_default_filter_factory (ACE_ENV_SINGLE_ARG_PARAMETER);
}
::CosNotifyChannelAdmin::ConsumerAdmin_ptr
@@ -170,8 +248,7 @@ TAO_NS_EventChannel::new_for_consumers (CosNotifyChannelAdmin::InterFilterGroupO
))
{
- /// Builder for ConsumerAdmins
- return TAO_NS_PROPERTIES::instance()->builder ()->build_consumer_admin (this, op, id ACE_ENV_ARG_PARAMETER);
+ return TAO_NS_PROPERTIES::instance()->builder()->build_consumer_admin (this, op, id ACE_ENV_ARG_PARAMETER);
}
::CosNotifyChannelAdmin::SupplierAdmin_ptr
@@ -183,8 +260,7 @@ TAO_NS_EventChannel::new_for_suppliers (CosNotifyChannelAdmin::InterFilterGroupO
CORBA::SystemException
))
{
- /// Builder for SupplierAdmins
- return TAO_NS_PROPERTIES::instance()->builder ()->build_supplier_admin (this, op, id ACE_ENV_ARG_PARAMETER);
+ return TAO_NS_PROPERTIES::instance()->builder()->build_supplier_admin (this, op, id ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::ConsumerAdmin_ptr
@@ -194,23 +270,9 @@ TAO_NS_EventChannel::get_consumeradmin (CosNotifyChannelAdmin::AdminID id ACE_EN
, CosNotifyChannelAdmin::AdminNotFound
))
{
- TAO_NS_Object* ns_object = this->find (id ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
-
- if (ns_object != 0)
- {
- CORBA::Object_var object = ns_object->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
+ TAO_NS_ConsumerAdmin_Find_Worker find_worker;
- CosNotifyChannelAdmin::ConsumerAdmin_var ca_ret;
-
- ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
-
- return ca_ret._retn ();
- }
- else
- ACE_THROW_RETURN (CosNotifyChannelAdmin::AdminNotFound (), CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
+ return find_worker.resolve (id, *this->ca_container_ ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::SupplierAdmin_ptr
@@ -220,23 +282,9 @@ TAO_NS_EventChannel::get_supplieradmin (CosNotifyChannelAdmin::AdminID id ACE_EN
, CosNotifyChannelAdmin::AdminNotFound
))
{
- TAO_NS_Object* ns_object = this->find (id ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ());
-
- if (ns_object != 0)
- {
- CORBA::Object_var object = ns_object->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ());
+ TAO_NS_SupplierAdmin_Find_Worker find_worker;
- CosNotifyChannelAdmin::SupplierAdmin_var sa_ret;
-
- sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ());
-
- return sa_ret._retn ();
- }
- else
- ACE_THROW_RETURN (CosNotifyChannelAdmin::AdminNotFound (), CosNotifyChannelAdmin::SupplierAdmin::_nil ());
+ return find_worker.resolve (id, *this->sa_container_ ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::AdminIDSeq*
@@ -245,25 +293,9 @@ TAO_NS_EventChannel::get_all_consumeradmins (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- CosNotifyChannelAdmin::AdminIDSeq* seq_ptr;
-
- ACE_NEW_THROW_EX (seq_ptr,
- CosNotifyChannelAdmin::AdminIDSeq (),
- CORBA::NO_MEMORY ());
-
- CosNotifyChannelAdmin::AdminIDSeq_var seq (seq_ptr);
-
- seq->length (this->consumer_admin_id_list_.size ());
-
- TAO_NS_Object_Id_Seq::CONST_ITERATOR iter (this->consumer_admin_id_list_);
+ TAO_NS_ConsumerAdmin_Seq_Worker seq_worker;
- TAO_NS_Object_Id* object_id;
-
- CORBA::ULong i = 0;
- for (iter.first (); iter.next (object_id); iter.advance (), ++i)
- seq[i] = *object_id;
-
- return seq._retn ();
+ return seq_worker.create (*this->ca_container_ ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::AdminIDSeq*
@@ -272,38 +304,9 @@ TAO_NS_EventChannel::get_all_supplieradmins (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- CosNotifyChannelAdmin::AdminIDSeq* seq_ptr;
-
- ACE_NEW_THROW_EX (seq_ptr,
- CosNotifyChannelAdmin::AdminIDSeq (),
- CORBA::NO_MEMORY ());
-
- CosNotifyChannelAdmin::AdminIDSeq_var seq (seq_ptr);
-
- seq->length (this->supplier_admin_id_list_.size ());
-
- TAO_NS_Object_Id_Seq::CONST_ITERATOR iter (this->consumer_admin_id_list_);
+ TAO_NS_SupplierAdmin_Seq_Worker seq_worker;
- TAO_NS_Object_Id* object_id;
-
- CORBA::ULong i = 0;
- for (iter.first (); iter.next (object_id); iter.advance (), ++i)
- seq[i] = *object_id;
-
- return seq._retn ();
-}
-
-void
-TAO_NS_EventChannel::validate_qos (const CosNotification::QoSProperties & /*required_qos*/,
- CosNotification::NamedPropertyRangeSeq_out /*available_qos*/
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- , CosNotification::UnsupportedQoS
- ))
-{
- ACE_THROW (CORBA::NO_IMPLEMENT ());
+ return seq_worker.create (*this->sa_container_ ACE_ENV_ARG_PARAMETER);
}
void
@@ -334,31 +337,74 @@ TAO_NS_EventChannel::get_admin (ACE_ENV_SINGLE_ARG_DECL)
}
CosEventChannelAdmin::ConsumerAdmin_ptr
-TAO_NS_EventChannel::for_consumers (ACE_ENV_SINGLE_ARG_DECL)
+TAO_NS_EventChannel::for_consumers (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((
CORBA::SystemException
))
{
- CosEventChannelAdmin::ConsumerAdmin_var ca_ret;
-
- ca_ret = CosEventChannelAdmin::ConsumerAdmin::_narrow (this->default_consumer_admin_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosEventChannelAdmin::ConsumerAdmin::_nil ());
-
- return ca_ret._retn ();
-
+ return CosEventChannelAdmin::ConsumerAdmin::_duplicate (this->default_consumer_admin_.in ());
}
CosEventChannelAdmin::SupplierAdmin_ptr
-TAO_NS_EventChannel::for_suppliers (ACE_ENV_SINGLE_ARG_DECL)
+TAO_NS_EventChannel::for_suppliers (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((
CORBA::SystemException
))
{
- CosEventChannelAdmin::SupplierAdmin_var sa_ret =
- CosEventChannelAdmin::SupplierAdmin::_narrow (this->default_supplier_admin_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosEventChannelAdmin::SupplierAdmin::_nil ());
+ return CosEventChannelAdmin::SupplierAdmin::_duplicate (this->default_supplier_admin_.in ());
+}
- return sa_ret._retn ();
+void
+TAO_NS_EventChannel::validate_qos (const CosNotification::QoSProperties & /*required_qos*/,
+ CosNotification::NamedPropertyRangeSeq_out /*available_qos*/
+ ACE_ENV_ARG_DECL
+ )
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ , CosNotification::UnsupportedQoS
+ ))
+{
+ ACE_THROW (CORBA::NO_IMPLEMENT ());
}
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class TAO_NS_Find_Worker_T<TAO_NS_ConsumerAdmin
+ , CosNotifyChannelAdmin::ConsumerAdmin
+ , CosNotifyChannelAdmin::ConsumerAdmin_ptr
+ , CosNotifyChannelAdmin::AdminNotFound>;
+template class TAO_NS_Find_Worker_T<TAO_NS_SupplierAdmin
+ , CosNotifyChannelAdmin::SupplierAdmin
+ , CosNotifyChannelAdmin::SupplierAdmin_ptr
+ , CosNotifyChannelAdmin::AdminNotFound>;
+
+template class TAO_NS_Seq_Worker_T<TAO_NS_ConsumerAdmin>;
+template class TAO_NS_Seq_Worker_T<TAO_NS_SupplierAdmin>;
+
+template class TAO_NS_Container_T <TAO_NS_ConsumerAdmin>;
+template class TAO_NS_Container_T <TAO_NS_SupplierAdmin>;
+
+template class TAO_ESF_Shutdown_Proxy<TAO_NS_ConsumerAdmin>;
+template class TAO_ESF_Shutdown_Proxy<TAO_NS_SupplierAdmin>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_ConsumerAdmin
+ , CosNotifyChannelAdmin::ConsumerAdmin
+ , CosNotifyChannelAdmin::ConsumerAdmin_ptr
+ , CosNotifyChannelAdmin::AdminNotFound>
+#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_SupplierAdmin
+ , CosNotifyChannelAdmin::SupplierAdmin
+ , CosNotifyChannelAdmin::SupplierAdmin_ptr
+ , CosNotifyChannelAdmin::AdminNotFound>
+
+#pragma instantiate TAO_NS_Seq_Worker_T<TAO_NS_ConsumerAdmin>
+#pragma instantiate TAO_NS_Seq_Worker_T<TAO_NS_SupplierAdmin>
+
+#pragma instantiate TAO_NS_Container_T <TAO_NS_ConsumerAdmin>
+#pragma instantiate TAO_NS_Container_T <TAO_NS_SupplierAdmin>
+
+#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_ConsumerAdmin>
+#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_SupplierAdmin>
+
+#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h
index 32435ec29a8..d49929af4fa 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/EventChannel.h
@@ -20,13 +20,12 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "orbsvcs/CosNotifyChannelAdminS.h"
-#include "orbsvcs/NotifyExtC.h"
-#include "Container_T.h"
-#include "Destroy_Callback.h"
-#include "AdminProperties.h"
-#include "EventChannelFactory.h"
+#include "Object.h"
-class TAO_NS_Admin;
+class TAO_NS_ConsumerAdmin;
+class TAO_NS_SupplierAdmin;
+class TAO_NS_EventChannelFactory;
+template <class TYPE> class TAO_NS_Container_T;
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
@@ -41,13 +40,15 @@ class TAO_NS_Admin;
* @brief Implementation of CosNotifyChannelAdmin::EventChannel
*
*/
-class TAO_Notify_Export TAO_NS_EventChannel : public POA_CosNotifyChannelAdmin::EventChannel, public virtual TAO_NS_Container_T <TAO_NS_Admin, TAO_NS_EventChannel, TAO_NS_EventChannelFactory>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_EventChannel : public POA_CosNotifyChannelAdmin::EventChannel
+ , public virtual TAO_NS_Object
{
friend class TAO_NS_Builder;
- typedef TAO_NS_Container_T <TAO_NS_Admin, TAO_NS_EventChannel, TAO_NS_EventChannelFactory> inherited;
- typedef ACE_Unbounded_Set <TAO_NS_Object_Id> TAO_NS_Object_Id_Seq;
public:
+ typedef CosNotifyChannelAdmin::ChannelIDSeq SEQ;
+ typedef CosNotifyChannelAdmin::ChannelIDSeq_var SEQ_VAR;
+
/// Constuctor
TAO_NS_EventChannel (void);
@@ -55,26 +56,40 @@ public:
~TAO_NS_EventChannel ();
/// Init
- void init (ACE_ENV_SINGLE_ARG_DECL);
-
- /// Insert object to this container.
- virtual void insert (TAO_NS_Admin* admin ACE_ENV_ARG_DECL);
+ void init (TAO_NS_EventChannelFactory* ecf
+ , const CosNotification::QoSProperties & initial_qos
+ , const CosNotification::AdminProperties & initial_admin
+ ACE_ENV_ARG_DECL);
- /// Remove type from container_
- virtual void remove (TAO_NS_Admin* admin ACE_ENV_ARG_DECL);
+ /// Remove ConsumerAdmin from its container.
+ void remove (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL);
- /// Return servant
- virtual PortableServer::Servant servant (void);
+ /// Remove SupplierAdmin from its container.
+ void remove (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_ARG_DECL);
/// ServantBase refcount methods.
virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL);
virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
+ /// Shutdown
+ virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
+
protected:
+ typedef TAO_NS_Container_T <TAO_NS_ConsumerAdmin> TAO_NS_ConsumerAdmin_Container;
+ typedef TAO_NS_Container_T <TAO_NS_SupplierAdmin> TAO_NS_SupplierAdmin_Container;
+
/// = Data Members
+ /// The parent object.
+ TAO_NS_EventChannelFactory* ecf_;
+
+ /// ConsumerAdmin Container.
+ TAO_NS_ConsumerAdmin_Container *ca_container_;
+
+ /// SupplierAdmin Container.
+ TAO_NS_SupplierAdmin_Container *sa_container_;
// Default Consumer Admin
CosNotifyChannelAdmin::ConsumerAdmin_var default_consumer_admin_;
@@ -82,12 +97,6 @@ protected:
// Default Supplier Admin
CosNotifyChannelAdmin::SupplierAdmin_var default_supplier_admin_;
- /// List of Consumer Admin ID's
- TAO_NS_Object_Id_Seq consumer_admin_id_list_;
-
- /// List of Supplier Admin ID's
- TAO_NS_Object_Id_Seq supplier_admin_id_list_;
-
/// =CosNotifyChannelAdmin::EventChannel methods
virtual void destroy (ACE_ENV_SINGLE_ARG_DECL)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp
index d1cfc5aece4..e5efebbd2ac 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp
@@ -8,15 +8,25 @@
ACE_RCSID(RT_Notify, TAO_NS_EventChannelFactory, "$Id$")
-#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
+#include "ace/Dynamic_Service.h"
#include "Properties.h"
+#include "Factory.h"
#include "Builder.h"
-#include "Proxy.h"
-#include "Admin.h"
#include "EventChannel.h"
-#include "Notify_Service.h"
+#include "Container_T.h"
+#include "Find_Worker_T.h"
+#include "Seq_Worker_T.h"
+
+typedef TAO_NS_Find_Worker_T<TAO_NS_EventChannel
+ , CosNotifyChannelAdmin::EventChannel
+ , CosNotifyChannelAdmin::EventChannel_ptr
+ , CosNotifyChannelAdmin::ChannelNotFound>
+TAO_NS_EventChannel_Find_Worker;
+
+typedef TAO_NS_Seq_Worker_T<TAO_NS_EventChannel> TAO_NS_EventChannel_Seq_Worker;
TAO_NS_EventChannelFactory::TAO_NS_EventChannelFactory (void)
+ :ec_container_ (0)
{
}
@@ -25,15 +35,69 @@ TAO_NS_EventChannelFactory::~TAO_NS_EventChannelFactory ()
}
void
-TAO_NS_EventChannelFactory::init (ACE_ENV_SINGLE_ARG_DECL)
+TAO_NS_EventChannelFactory::destroy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
{
- this->default_filter_factory_ = TAO_NS_PROPERTIES::instance()->builder ()->build_filter_factory (ACE_ENV_SINGLE_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ this->ec_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ TAO_NS_Properties* properties = TAO_NS_PROPERTIES::instance();
+
+ delete this->ec_container_;
+
+ // Shutdown the ORB.
+ CORBA::ORB_var orb = properties->orb ();
+ orb->shutdown ();
+
+ // Reset references to CORBA objects.
+ properties->orb (CORBA::ORB::_nil ());
+ properties->default_poa (PortableServer::POA::_nil ());
}
-PortableServer::Servant
-TAO_NS_EventChannelFactory::servant (void)
+void
+TAO_NS_EventChannelFactory::init (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL)
{
- return this;
+ this->default_filter_factory_ =
+ TAO_NS_PROPERTIES::instance()->builder()->build_filter_factory (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // Init ec_container_
+ ACE_NEW_THROW_EX (this->ec_container_,
+ TAO_NS_EventChannel_Container (),
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
+ this->ec_container_->init (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ TAO_NS_POA_Helper* object_poa = 0;
+
+ // Bootstrap initial Object POA
+ ACE_NEW_THROW_EX (object_poa,
+ TAO_NS_POA_Helper (),
+ CORBA::NO_MEMORY ());
+ ACE_CHECK;
+
+ auto_ptr<TAO_NS_POA_Helper> auto_object_poa (object_poa);
+
+ object_poa->init (poa ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ // release auto_ref.
+ auto_object_poa.release ();
+
+ this->object_poa_own (object_poa);
+
+ // We are also activated in the same Object POA.
+ this->poa_ = this->object_poa_;
+
+ // Make the Proxys acivate in this same POA.
+ this->proxy_poa_ = this->object_poa_;
}
void
@@ -55,30 +119,29 @@ TAO_NS_EventChannelFactory::release (void)
//@@ inform factory
}
-CosNotifyFilter::FilterFactory_ptr
-TAO_NS_EventChannelFactory::get_default_filter_factory (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+void
+TAO_NS_EventChannelFactory::remove (TAO_NS_EventChannel* event_channel ACE_ENV_ARG_DECL)
{
- return CosNotifyFilter::FilterFactory::_duplicate (this->default_filter_factory_.in ());
+ this->ec_container_->remove (event_channel ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
}
-void
-TAO_NS_EventChannelFactory::destroy (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
+int
+TAO_NS_EventChannelFactory::shutdown (ACE_ENV_SINGLE_ARG_DECL)
{
- if (this->inherited::destroy (this ACE_ENV_ARG_PARAMETER) == 1)
- return;
+ if (TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return 1;
- TAO_NS_Properties* properties = TAO_NS_PROPERTIES::instance();
+ this->ec_container_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (1);
- // Shutdown the ORB.
- CORBA::ORB_var orb = properties->orb ();
- orb->shutdown ();
+ return 0;
+}
- // Reset references to CORBA objects.
- properties->orb (CORBA::ORB::_nil ());
- properties->default_poa (PortableServer::POA::_nil ());
+CosNotifyFilter::FilterFactory_ptr
+TAO_NS_EventChannelFactory::get_default_filter_factory (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+{
+ return CosNotifyFilter::FilterFactory::_duplicate (this->default_filter_factory_.in ());
}
::CosNotifyChannelAdmin::EventChannel_ptr TAO_NS_EventChannelFactory::create_channel (
@@ -87,12 +150,16 @@ TAO_NS_EventChannelFactory::destroy (ACE_ENV_SINGLE_ARG_DECL)
CosNotifyChannelAdmin::ChannelID_out id ACE_ENV_ARG_DECL
)
ACE_THROW_SPEC ((
- CORBA::SystemException
- , CosNotification::UnsupportedQoS
- , CosNotification::UnsupportedAdmin
- ))
+ CORBA::SystemException
+ , CosNotification::UnsupportedQoS
+ , CosNotification::UnsupportedAdmin
+ ))
{
- return TAO_NS_PROPERTIES::instance()->builder ()->build_event_channel (this, initial_qos, initial_admin, id ACE_ENV_ARG_PARAMETER);
+ return TAO_NS_PROPERTIES::instance()->builder()->build_event_channel (this
+ , initial_qos
+ , initial_admin
+ , id
+ ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::ChannelIDSeq*
@@ -101,23 +168,9 @@ TAO_NS_EventChannelFactory::get_all_channels (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- CosNotifyChannelAdmin::ChannelIDSeq* seq;
+ TAO_NS_EventChannel_Seq_Worker seq_worker;
- ACE_NEW_THROW_EX (seq,
- CosNotifyChannelAdmin::ChannelIDSeq (),
- CORBA::NO_MEMORY ());
-
- seq->length (this->event_channel_id_list_.size ());
-
- TAO_NS_Object_Id_Seq::CONST_ITERATOR iter (this->event_channel_id_list_);
-
- TAO_NS_Object_Id* object_id;
-
- CORBA::ULong i = 0;
- for (iter.first (); iter.next (object_id); iter.advance (), ++i)
- seq[i] = *object_id;
-
- return seq;
+ return seq_worker.create (*this->ec_container_ ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::EventChannel_ptr
@@ -127,38 +180,33 @@ TAO_NS_EventChannelFactory::get_event_channel (CosNotifyChannelAdmin::ChannelID
, CosNotifyChannelAdmin::ChannelNotFound
))
{
- TAO_NS_Object* ns_object = this->find (id ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannel::_nil ());
-
- if (ns_object != 0)
- {
- CORBA::Object_var object = ns_object->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannel::_nil ());
-
- CosNotifyChannelAdmin::EventChannel_var ec_ret =
- CosNotifyChannelAdmin::EventChannel::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannel::_nil ());
-
- return ec_ret._retn ();
- }
- else
- ACE_THROW_RETURN (CosNotifyChannelAdmin::ChannelNotFound (), CosNotifyChannelAdmin::EventChannel::_nil ());
+ TAO_NS_EventChannel_Find_Worker find_worker;
+
+ return find_worker.resolve (id, *this->ec_container_ ACE_ENV_ARG_PARAMETER);
}
-void
-TAO_NS_EventChannelFactory::insert (TAO_NS_EventChannel* event_channel ACE_ENV_ARG_DECL)
-{
- inherited::insert (event_channel ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- this->event_channel_id_list_.insert (event_channel->id ());
-}
+template class TAO_NS_Find_Worker_T<TAO_NS_EventChannel
+ , CosNotifyChannelAdmin::EventChannel
+ , CosNotifyChannelAdmin::EventChannel_ptr
+ , CosNotifyChannelAdmin::ChannelNotFound>;
+template class TAO_NS_Seq_Worker_T<TAO_NS_EventChannel>;
-void
-TAO_NS_EventChannelFactory::remove (TAO_NS_EventChannel* event_channel ACE_ENV_ARG_DECL)
-{
- inherited::remove (event_channel ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+template class TAO_NS_Container_T <TAO_NS_EventChannel>;
- this->event_channel_id_list_.remove (event_channel->id ());
-}
+template class TAO_ESF_Shutdown_Proxy<TAO_NS_EventChannel>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_EventChannel
+ , CosNotifyChannelAdmin::EventChannel
+ , CosNotifyChannelAdmin::EventChannel_ptr
+ , CosNotifyChannelAdmin::ChannelNotFound>
+#pragma instantiate TAO_NS_Seq_Worker_T<TAO_NS_EventChannel>
+
+
+#pragma instantiate TAO_NS_Container_T <TAO_NS_EventChannel>
+
+#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_EventChannel>;
+
+#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.h b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.h
index d8fdfae268a..268618aaf32 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.h
@@ -21,11 +21,10 @@
#include "orbsvcs/CosNotifyChannelAdminS.h"
#include "orbsvcs/NotifyExtS.h"
-#include "Container_T.h"
-#include "Destroy_Callback.h"
-#include "Notify_Service.h"
+#include "Object.h"
class TAO_NS_EventChannel;
+template <class TYPE> class TAO_NS_Container_T;
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
@@ -40,49 +39,43 @@ class TAO_NS_EventChannel;
* @brief Implementation of CosNotifyChannelAdmin::EventChannelFactory
*
*/
-
-
-class TAO_Notify_Export TAO_NS_EventChannelFactory : public virtual POA_NotifyExt::EventChannelFactory, public TAO_NS_Container_T <TAO_NS_EventChannel, TAO_NS_EventChannelFactory, TAO_NS_Notify_Service>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_EventChannelFactory : public virtual POA_NotifyExt::EventChannelFactory
+ , public virtual TAO_NS_Object
{
friend class TAO_NS_Builder;
public:
- typedef TAO_NS_Container_T <TAO_NS_EventChannel, TAO_NS_EventChannelFactory, TAO_NS_Notify_Service> inherited;
- typedef ACE_Unbounded_Set <TAO_NS_Object_Id> TAO_NS_Object_Id_Seq;
-
/// Constuctor
TAO_NS_EventChannelFactory (void);
/// Init the factory
- void init (ACE_ENV_SINGLE_ARG_DECL);
+ void init (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL);
/// Destructor
virtual ~TAO_NS_EventChannelFactory ();
- /// Return servant
- virtual PortableServer::Servant servant (void);
-
- /// Insert object to this container.
- virtual void insert (TAO_NS_EventChannel* event_channel ACE_ENV_ARG_DECL);
-
- /// Remove type from container_
- virtual void remove (TAO_NS_EventChannel* event_channel ACE_ENV_ARG_DECL);
-
/// = ServantBase Methods
virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL);
virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
- /// TAO_NS_Destroy_Callback methods
+ /// Release this object.
virtual void release (void);
+ /// Remove <channel> from the <ec_container_>
+ void remove (TAO_NS_EventChannel* channel ACE_ENV_ARG_DECL);
+
/// Accesor for the default filter factory shared by all EC's.
virtual CosNotifyFilter::FilterFactory_ptr get_default_filter_factory (ACE_ENV_SINGLE_ARG_DECL);
+ /// shutdown
+ virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
+
protected:
- /// = Data Members
+ typedef TAO_NS_Container_T<TAO_NS_EventChannel> TAO_NS_EventChannel_Container;
- /// List of Event Channel ID's
- TAO_NS_Object_Id_Seq event_channel_id_list_;
+ /// = Data Members
+ /// Container for Event Channels.
+ TAO_NS_EventChannel_Container *ec_container_;
/// The default filter factory.
CosNotifyFilter::FilterFactory_var default_filter_factory_;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.cpp b/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.cpp
index d3dc77f9b62..b18ce49fd22 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.cpp
@@ -9,21 +9,10 @@
ACE_RCSID(RT_Notify, TAO_NS_Event_Manager, "$Id$")
-#include "ace/Refcounted_Auto_Ptr.h"
-#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
-
-#include "EventTypeSeq.h"
-#include "Event.h"
-#include "Peer.h"
-#include "Consumer.h"
#include "ProxyConsumer.h"
#include "ProxySupplier.h"
-#include "Proxy.h"
-#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
-#include "Event_Map_T.h"
+#include "Consumer_Map.h"
+#include "Supplier_Map.h"
TAO_NS_Event_Manager::TAO_NS_Event_Manager (void)
:consumer_map_ (0), supplier_map_ (0)
@@ -219,10 +208,6 @@ template class ACE_Hash_Map_Manager<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<T
template class ACE_Hash_Map_Manager<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Null_Mutex>;
template class ACE_Hash_Map_Manager<ACE_CString, CORBA::Any, ACE_Null_Mutex>;
-template class TAO_NS_Object_Find_Worker_T<TAO_NS_Proxy>;
-template class TAO_NS_Object_Find_Worker_T<TAO_NS_Admin>;
-template class TAO_NS_Object_Find_Worker_T<TAO_NS_EventChannel>;
-
template class ACE_Unbounded_Set<TAO_NS_EventType>;
template class ACE_Unbounded_Set_Const_Iterator<TAO_NS_EventType>;
template class ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> >;
@@ -233,7 +218,8 @@ template class TAO_ESF_Worker<TAO_NS_ProxyConsumer>;
template class TAO_ESF_Worker<TAO_NS_Proxy>;
template class TAO_ESF_Worker<TAO_NS_Consumer>;
template class TAO_ESF_Worker<TAO_NS_Peer>;
-template class TAO_ESF_Worker<TAO_NS_Admin>;
+template class TAO_ESF_Worker<TAO_NS_SupplierAdmin>;
+template class TAO_ESF_Worker<TAO_NS_ConsumerAdmin>;
template class TAO_ESF_Worker<TAO_NS_EventChannel>;
template class ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX>;
@@ -241,7 +227,8 @@ template class ACE_Unbounded_Queue_Iterator<ACE_Refcounted_Auto_Ptr<TAO_NS_Event
template class ACE_Node<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX > >;
template class ACE_Node<TAO_NS_Supplier *>;
-template class ACE_Node<TAO_NS_Admin *>;
+template class ACE_Node<TAO_NS_SupplierAdmin *>;
+template class ACE_Node<TAO_NS_ConsumerAdmin *>;
template class ACE_Node<TAO_NS_EventChannel *>;
template class ACE_Node<TAO_NS_ProxyConsumer *>;
template class ACE_Node<TAO_NS_EventType>;
@@ -269,10 +256,6 @@ template class ACE_Hash_Map_Iterator_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CS
template class ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>;
template class ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>;
-template class TAO_ESF_Shutdown_Proxy<TAO_NS_EventChannel>;
-template class TAO_ESF_Shutdown_Proxy<TAO_NS_Admin>;
-template class TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>;
-
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#pragma instantiate TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX>
@@ -290,10 +273,6 @@ template class TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>;
#pragma instantiate ACE_Hash_Map_Manager<TAO_NS_EventType, TAO_NS_Event_Map_Entry_T<TAO_NS_ProxyConsumer> *, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Manager<ACE_CString, CORBA::Any, ACE_Null_Mutex>
-#pragma instantiate TAO_NS_Object_Find_Worker_T<TAO_NS_Proxy>
-#pragma instantiate TAO_NS_Object_Find_Worker_T<TAO_NS_Admin>
-#pragma instantiate TAO_NS_Object_Find_Worker_T<TAO_NS_EventChannel>
-
#pragma instantiate ACE_Unbounded_Set<TAO_NS_EventType>
#pragma instantiate ACE_Unbounded_Set_Const_Iterator<TAO_NS_EventType>
#pragma instantiate ACE_Unbounded_Queue<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX> >
@@ -304,7 +283,8 @@ template class TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>;
#pragma instantiate TAO_ESF_Worker<TAO_NS_Proxy>
#pragma instantiate TAO_ESF_Worker<TAO_NS_Consumer>
#pragma instantiate TAO_ESF_Worker<TAO_NS_Peer>
-#pragma instantiate TAO_ESF_Worker<TAO_NS_Admin>
+#pragma instantiate TAO_ESF_Worker<TAO_NS_ConsumerAdmin>
+#pragma instantiate TAO_ESF_Worker<TAO_NS_SupplierAdmin>
#pragma instantiate TAO_ESF_Worker<TAO_NS_EventChannel>
#pragma instantiate ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX>
@@ -312,7 +292,8 @@ template class TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>;
#pragma instantiate ACE_Node<ACE_Refcounted_Auto_Ptr<TAO_NS_Event, TAO_SYNCH_MUTEX > >
#pragma instantiate ACE_Node<TAO_NS_Supplier *>
-#pragma instantiate ACE_Node<TAO_NS_Admin *>
+#pragma instantiate ACE_Node<TAO_NS_SupplierAdmin *>
+#pragma instantiate ACE_Node<TAO_NS_ConsumerAdmin *>
#pragma instantiate ACE_Node<TAO_NS_EventChannel *>
#pragma instantiate ACE_Node<TAO_NS_ProxyConsumer *>
#pragma instantiate ACE_Node<TAO_NS_EventType>
@@ -339,9 +320,4 @@ template class TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>;
#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Iterator_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>
#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<ACE_CString, CORBA::Any, ACE_Hash<ACE_CString >, ACE_Equal_To<ACE_CString >, ACE_Null_Mutex>
-
-#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_EventChannel>
-#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_Admin>
-#pragma instantiate TAO_ESF_Shutdown_Proxy<TAO_NS_Proxy>
-
#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.h b/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.h
index 5da8ed87089..efc8b257831 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Event_Manager.h
@@ -19,10 +19,16 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "Types.h"
-#include "EventTypeSeq.h"
#include "orbsvcs/ESF/ESF_Worker.h"
+class TAO_NS_ProxySupplier;
+class TAO_NS_ProxyConsumer;
+class TAO_NS_EventTypeSeq;
+
+template <class PROXY, class ACE_LOCK> class TAO_NS_Event_Map_T;
+typedef TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX> TAO_NS_Consumer_Map;
+typedef TAO_NS_Event_Map_T<TAO_NS_ProxyConsumer, TAO_SYNCH_RW_MUTEX> TAO_NS_Supplier_Map;
+
/**
* @class TAO_NS_Event_Manager
*
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h
index f9981c0a093..caca41aecf3 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_Entry_T.h
@@ -21,9 +21,10 @@
#include "ace/Copy_Disabled.h"
#include "ace/Atomic_Op.h"
-#include "Types.h"
+#include "tao/corba.h"
template <class PROXY, class ACE_LOCK> class TAO_NS_Event_Map_T;
+template <class PROXY> class TAO_ESF_Proxy_Collection;
/**
* @class TAO_NS_Event_Map_Entry_T
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.h b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.h
index 6fe8b485bb7..b7219b3f509 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Event_Map_T.h
@@ -20,7 +20,8 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Hash_Map_Manager.h"
-#include "Types.h"
+#include "ace/CORBA_macros.h"
+
#include "EventType.h"
#include "Event_Map_Entry_T.h"
#include "EventTypeSeq.h"
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Factory.h b/TAO/orbsvcs/orbsvcs/Notify/Factory.h
index 82ee2e282e3..2f0ee401cba 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Factory.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Factory.h
@@ -13,15 +13,13 @@
#define TAO_NS_FACTORY_H
#include "ace/pre.h"
-#include "notify_export.h"
-
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+#include "tao/corba.h"
#include "ace/CORBA_macros.h"
-
-#include "Types.h"
+#include "ace/Service_Object.h"
class ACE_Lock;
class TAO_NS_Object;
@@ -37,6 +35,24 @@ class TAO_NS_StructuredProxyPushConsumer;
class TAO_NS_StructuredProxyPushSupplier;
class TAO_NS_SequenceProxyPushConsumer;
class TAO_NS_SequenceProxyPushSupplier;
+class TAO_NS_ProxyConsumer;
+class TAO_NS_ProxySupplier;
+class TAO_NS_ConsumerAdmin;
+class TAO_NS_SupplierAdmin;
+class TAO_NS_Proxy;
+class TAO_NS_Consumer;
+class TAO_NS_Supplier;
+class TAO_NS_Peer;
+
+template <class PROXY> class TAO_ESF_Proxy_Collection;
+
+typedef TAO_ESF_Proxy_Collection<TAO_NS_ProxyConsumer> TAO_NS_ProxyConsumer_Collection;
+typedef TAO_ESF_Proxy_Collection<TAO_NS_ProxySupplier> TAO_NS_ProxySupplier_Collection;
+
+typedef TAO_ESF_Proxy_Collection<TAO_NS_EventChannel> TAO_NS_EventChannel_Collection;
+typedef TAO_ESF_Proxy_Collection<TAO_NS_ConsumerAdmin> TAO_NS_ConsumerAdmin_Collection;
+typedef TAO_ESF_Proxy_Collection<TAO_NS_SupplierAdmin> TAO_NS_SupplierAdmin_Collection;
+typedef TAO_ESF_Proxy_Collection<TAO_NS_Proxy> TAO_NS_Proxy_Collection;
/**
* @class TAO_NS_Factory
@@ -44,70 +60,63 @@ class TAO_NS_SequenceProxyPushSupplier;
* @brief Factory interface for creating Notify Objects.
*
*/
-class TAO_Notify_Export TAO_NS_Factory
+class /*TAO_Notify_Export*/ TAO_NS_Factory : public ACE_Service_Object
{
public:
- /// Constuctor
- TAO_NS_Factory (void);
+ /// Create ProxySupplier Collection
+ virtual void create (TAO_NS_ProxySupplier_Collection*& collection ACE_ENV_ARG_DECL) = 0;
- /// Destructor
- virtual ~TAO_NS_Factory ();
+ /// Create ProxyConsumer Collection
+ virtual void create (TAO_NS_ProxyConsumer_Collection*& collection ACE_ENV_ARG_DECL) = 0;
- /// Create Object Lock.
- virtual ACE_Lock* create_object_lock (ACE_ENV_SINGLE_ARG_DECL);
+ /// Create EventChannel Collection
+ virtual void create (TAO_NS_EventChannel_Collection*& collection ACE_ENV_ARG_DECL) = 0;
- /// Create Collection
- virtual void create (TAO_NS_ProxySupplier_Collection*& collection ACE_ENV_ARG_DECL);
- virtual void create (TAO_NS_ProxyConsumer_Collection*& collection ACE_ENV_ARG_DECL);
+ /// Create ConsumerAdmin Collection
+ virtual void create (TAO_NS_ConsumerAdmin_Collection*& collection ACE_ENV_ARG_DECL) = 0;
- virtual void create (TAO_NS_EventChannel_Collection*& collection ACE_ENV_ARG_DECL);
- virtual void create (TAO_NS_Admin_Collection*& collection ACE_ENV_ARG_DECL);
- virtual void create (TAO_NS_Proxy_Collection*& collection ACE_ENV_ARG_DECL);
+ /// Create SupplierAdmin Collection
+ virtual void create (TAO_NS_SupplierAdmin_Collection*& collection ACE_ENV_ARG_DECL) = 0;
- virtual void create (TAO_NS_Peer_Collection*& collection ACE_ENV_ARG_DECL);
- virtual void create (TAO_NS_Consumer_Collection*& collection ACE_ENV_ARG_DECL);
- virtual void create (TAO_NS_Supplier_Collection*& collection ACE_ENV_ARG_DECL);
+ /// Create Proxy Collection
+ virtual void create (TAO_NS_Proxy_Collection*& collection ACE_ENV_ARG_DECL) = 0;
/// Create EventChannelFactory
- virtual void create (TAO_NS_EventChannelFactory*& channel_factory ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_EventChannelFactory*& channel_factory ACE_ENV_ARG_DECL) = 0;
/// Create EventChannel
- virtual void create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_EventChannel*& channel ACE_ENV_ARG_DECL) = 0;
/// Create SupplierAdmin
- virtual void create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_SupplierAdmin*& admin ACE_ENV_ARG_DECL) = 0;
/// Create ConsumerAdmin
- virtual void create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_ConsumerAdmin*& admin ACE_ENV_ARG_DECL) = 0;
/// Create ProxyPushConsumer
- virtual void create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0;
/// Create ProxyPushSupplier
- virtual void create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0;
/// Create CosEC_ProxyPushConsumer
- virtual void create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0;
/// Create CosEC_ProxyPushSupplier
- virtual void create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0;
/// Create StructuredProxyPushConsumer
- virtual void create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0;
/// Create StructuredProxyPushSupplier
- virtual void create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0;
/// Create SequenceProxyPushConsumer
- virtual void create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0;
/// Create SequenceProxyPushSupplier
- virtual void create (TAO_NS_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL);
+ virtual void create (TAO_NS_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0;
};
-#if defined (__ACE_INLINE__)
-#include "Factory.inl"
-#endif /* __ACE_INLINE__ */
-
#include "ace/post.h"
#endif /* TAO_NS_FACTORY_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.cpp
index 48872e9abb7..bf3798f31ab 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.cpp
@@ -21,9 +21,12 @@ TAO_NS_FilterAdmin::match (const TAO_NS_Event_var &event ACE_ENV_ARG_DECL)
CosNotifyFilter::UnsupportedFilterableData
))
{
- // If no filter is active, treat it as a '*' i.e, let all events pass.
- // or if its the special type, let it pass.
- if (this->filter_list_.current_size () == 0) // || event.is_special_event_type ())
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
+ // If no filter is active, match is successfull.
+ if (this->filter_list_.current_size () == 0)
return 1;
// We want to return true if atleast one constraint matches.
@@ -50,26 +53,33 @@ TAO_NS_FilterAdmin::add_filter (CosNotifyFilter::Filter_ptr new_filter ACE_ENV_A
if (CORBA::is_nil (new_filter))
ACE_THROW_RETURN (CORBA::BAD_PARAM (), 0);
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
CosNotifyFilter::FilterID new_id = this->filter_ids_.id ();
CosNotifyFilter::Filter_var new_filter_var =
CosNotifyFilter::Filter::_duplicate (new_filter);
if (this->filter_list_.bind (new_id, new_filter_var) == -1)
- ACE_THROW_RETURN (CORBA::INTERNAL (),
- 0);
+ ACE_THROW_RETURN (CORBA::INTERNAL (),
+ 0);
else
- {
- return new_id;
- }
+ return new_id;
}
-void TAO_NS_FilterAdmin::remove_filter (CosNotifyFilter::FilterID filter_id ACE_ENV_ARG_DECL)
+void
+TAO_NS_FilterAdmin::remove_filter (CosNotifyFilter::FilterID filter_id ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException,
CosNotifyFilter::FilterNotFound
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
if (this->filter_list_.unbind (filter_id) == -1)
ACE_THROW (CosNotifyFilter::FilterNotFound ());
}
@@ -81,6 +91,10 @@ TAO_NS_FilterAdmin::get_filter (CosNotifyFilter::FilterID filter_id ACE_ENV_ARG_
CosNotifyFilter::FilterNotFound
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ());
+
CosNotifyFilter::Filter_var filter_var;
if (this->filter_list_.find (filter_id,
@@ -97,6 +111,10 @@ TAO_NS_FilterAdmin::get_all_filters (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
// Figure out the length of the list.
size_t len = this->filter_list_.current_size ();
@@ -112,8 +130,8 @@ TAO_NS_FilterAdmin::get_all_filters (ACE_ENV_SINGLE_ARG_DECL)
list->length (len);
- FILTER_LIST_ITER iter (this->filter_list_);
- FILTER_LIST_ENTRY *entry;
+ FILTER_LIST::ITERATOR iter (this->filter_list_);
+ FILTER_LIST::ENTRY *entry;
u_int index;
@@ -126,30 +144,34 @@ TAO_NS_FilterAdmin::get_all_filters (ACE_ENV_SINGLE_ARG_DECL)
}
void
-TAO_NS_FilterAdmin::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+TAO_NS_FilterAdmin::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK;
+
this->filter_list_.unbind_all ();
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template class ACE_Hash_Map_Entry<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var>;
-template class ACE_Hash_Map_Manager<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Manager_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>;
+template class ACE_Hash_Map_Manager<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Null_Mutex>;
+template class ACE_Hash_Map_Manager_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,ACE_Null_Mutex>;
+template class ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,ACE_Null_Mutex>;
+template class ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Null_Mutex>;
+template class ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,ACE_Null_Mutex>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#pragma instantiate ACE_Hash_Map_Entry<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var>
-#pragma instantiate ACE_Hash_Map_Manager<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,TAO_SYNCH_MUTEX>
+#pragma instantiate ACE_Hash_Map_Manager<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Manager_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Null_Mutex>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<CosNotifyFilter::FilterID,CosNotifyFilter::Filter_var,ACE_Hash<CosNotifyFilter::FilterID>, ACE_Equal_To<CosNotifyFilter::FilterID>,ACE_Null_Mutex>
#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.h b/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.h
index b31b3371f9c..89998714834 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.h
@@ -21,7 +21,6 @@
#include "ID_Factory.h"
#include "Event.h"
#include "notify_export.h"
-#include "Types.h"
/**
* @class TAO_NS_FilterAdmin
@@ -73,9 +72,10 @@ class TAO_Notify_Export TAO_NS_FilterAdmin
));
private:
- typedef ACE_Hash_Map_Manager <CosNotifyFilter::FilterID, CosNotifyFilter::Filter_var, TAO_SYNCH_MUTEX> FILTER_LIST;
- typedef ACE_Hash_Map_Iterator <CosNotifyFilter::FilterID, CosNotifyFilter::Filter_var, TAO_SYNCH_MUTEX> FILTER_LIST_ITER;
- typedef ACE_Hash_Map_Entry <CosNotifyFilter::FilterID, CosNotifyFilter::Filter_var> FILTER_LIST_ENTRY;
+ typedef ACE_Hash_Map_Manager <CosNotifyFilter::FilterID, CosNotifyFilter::Filter_var, ACE_SYNCH_NULL_MUTEX> FILTER_LIST;
+
+ /// Mutex to serialize access to data members.
+ TAO_SYNCH_MUTEX lock_;
/// List of filters
FILTER_LIST filter_list_;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/FilterFactory.h b/TAO/orbsvcs/orbsvcs/Notify/FilterFactory.h
index 0f6b520589b..27708b31cd9 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/FilterFactory.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/FilterFactory.h
@@ -20,6 +20,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Service_Object.h"
+#include "tao/PortableServer/PortableServer.h"
/**
* @class TAO_NS_FilterFactory
@@ -31,8 +32,8 @@ class /*TAO_Notify_Export*/ TAO_NS_FilterFactory : public ACE_Service_Object
{
public:
/// Factory method to create a FilterFactory reference
- /// The Factory is activated in the default POA.
- virtual CosNotifyFilter::FilterFactory_ptr create (ACE_ENV_SINGLE_ARG_DECL) = 0;
+ /// The Factory is activated in the default POA. The filters created are activated in the <filter_poa>.
+ virtual CosNotifyFilter::FilterFactory_ptr create (PortableServer::POA_var& filter_poa ACE_ENV_ARG_DECL) = 0;
};
#include "ace/post.h"
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp
new file mode 100644
index 00000000000..1c560a73503
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.cpp
@@ -0,0 +1,47 @@
+// $Id$
+
+#ifndef TAO_NS_FIND_WORKER_T_CPP
+#define TAO_NS_FIND_WORKER_T_CPP
+
+#include "Find_Worker_T.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "Find_Worker_T.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Notify, TAO_NS_Find_Worker_T, "$id$")
+
+template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
+TAO_NS_Find_Worker_T<TYPE,INTERFACE,INTERFACE_PTR,EXCEPTION>::TAO_NS_Find_Worker_T (void)
+ :id_ (0), result_ (0)
+{
+}
+
+template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION> TYPE*
+TAO_NS_Find_Worker_T<TYPE,INTERFACE,INTERFACE_PTR,EXCEPTION>::find (TAO_NS_Object::ID id, CONTAINER& container ACE_ENV_ARG_DECL)
+{
+ this->id_ = id;
+
+ container.collection ()->for_each (this ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+
+ return this->result_;
+}
+
+template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION> INTERFACE_PTR
+TAO_NS_Find_Worker_T<TYPE,INTERFACE,INTERFACE_PTR,EXCEPTION>::resolve (TAO_NS_Object::ID id, CONTAINER& container ACE_ENV_ARG_DECL)
+{
+ this->find (id, container ACE_ENV_ARG_PARAMETER);
+
+ if (this->result_ == 0)
+ ACE_THROW_RETURN (EXCEPTION ()
+ , INTERFACE::_nil ());
+
+ CORBA::Object_var object = this->result_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK_RETURN (INTERFACE::_nil ());
+
+ return INTERFACE::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
+
+}
+
+#endif /* TAO_NS_FIND_WORKER_T_CPP */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.h b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.h
new file mode 100644
index 00000000000..172b64c2b56
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.h
@@ -0,0 +1,72 @@
+/* -*- C++ -*- */
+/**
+ * @file Find_Worker_T.h
+ *
+ * $Id$
+ *
+ * @author Pradeep Gore <pradeep@oomworks.com>
+ *
+ *
+ */
+
+#ifndef TAO_NS_FIND_WORKER_T_H
+#define TAO_NS_FIND_WORKER_T_H
+#include "ace/pre.h"
+
+#include "notify_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
+#include "orbsvcs/ESF/ESF_Worker.h"
+#include "Container_T.h"
+
+/**
+ * @class TAO_NS_Find_Worker_T
+ *
+ * @brief Helper to locate a TYPE given its ID.
+ *
+ */
+template <class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION>
+class TAO_Notify_Export TAO_NS_Find_Worker_T : public TAO_ESF_Worker<TYPE>
+{
+ typedef TAO_NS_Container_T<TYPE> CONTAINER;
+ typedef TAO_ESF_Proxy_Collection<TYPE> COLLECTION;
+
+public:
+ /// Constructor
+ TAO_NS_Find_Worker_T (void);
+
+ /// Find the Type.
+ TYPE* find (TAO_NS_Object::ID id, CONTAINER& container ACE_ENV_ARG_DECL);
+
+ /// Find and resolve to the Interface.
+ INTERFACE_PTR resolve (TAO_NS_Object::ID id, CONTAINER& container ACE_ENV_ARG_DECL);
+
+protected:
+ ///= TAO_ESF_Worker method
+ void work (TYPE* object ACE_ENV_ARG_DECL);
+
+ /// The id we're looking for.
+ TAO_NS_Object::ID id_;
+
+ /// The result
+ TYPE* result_;
+};
+
+#if defined (__ACE_INLINE__)
+#include "Find_Worker_T.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Find_Worker_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Find_Worker_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include "ace/post.h"
+#endif /* TAO_NS_FIND_WORKER_T_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.inl
new file mode 100644
index 00000000000..b93dd01c819
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Find_Worker_T.inl
@@ -0,0 +1,8 @@
+// $Id$
+
+template<class TYPE, class INTERFACE, class INTERFACE_PTR, class EXCEPTION> ACE_INLINE void
+TAO_NS_Find_Worker_T<TYPE,INTERFACE,INTERFACE_PTR,EXCEPTION>::work (TYPE* type ACE_ENV_ARG_DECL_NOT_USED)
+{
+ if (type->id () == this->id_)
+ this->result_ = type;
+}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.h b/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.h
index 014516164e2..bd756a57ed3 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.h
@@ -19,8 +19,8 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "Types.h"
#include "ace/Atomic_Op.h"
+#include "Object.h"
/**
* @class TAO_NS_ID_Factory
@@ -37,10 +37,10 @@ public:
/// Destructor
~TAO_NS_ID_Factory ();
- TAO_NS_Object_Id id (void);
+ TAO_NS_Object::ID id (void);
private:
- ACE_Atomic_Op<TAO_SYNCH_MUTEX, TAO_NS_Object_Id> seed_;
+ ACE_Atomic_Op<TAO_SYNCH_MUTEX, TAO_NS_Object::ID> seed_;
};
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.inl b/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.inl
index 5756b006767..3520fc9bb7a 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/ID_Factory.inl
@@ -1,6 +1,6 @@
// $Id$
-ACE_INLINE TAO_NS_Object_Id
+ACE_INLINE TAO_NS_Object::ID
TAO_NS_ID_Factory::id (void)
{
return ++seed_;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request.h
index f16879b53e6..4124b82b21e 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request.h
@@ -22,8 +22,6 @@
#include "ace/Message_Block.h"
#include "ace/Refcounted_Auto_Ptr.h"
#include "Event.h"
-#include "Types.h"
-#include "Refcountable.h"
/**
* @class TAO_NS_Method_Request
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp
index 0f9c02bf6f1..caa1d7de399 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp
@@ -11,11 +11,8 @@ ACE_RCSID(RT_Notify, TAO_NS_Method_Request_Dispatch, "$Id$")
#include "tao/debug.h"
#include "ProxySupplier.h"
#include "Consumer.h"
-#include "Proxy.h"
#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
+#include "ConsumerAdmin.h"
TAO_NS_Method_Request_Dispatch::TAO_NS_Method_Request_Dispatch (const TAO_NS_Event_var& event, TAO_NS_ProxySupplier* proxy_supplier)
: TAO_NS_Method_Request_Event (event), proxy_supplier_ (proxy_supplier), refcountable_guard_ (*proxy_supplier)
@@ -39,7 +36,12 @@ TAO_NS_Method_Request_Dispatch::execute (ACE_ENV_SINGLE_ARG_DECL)
if (this->proxy_supplier_->has_shutdown ())
return 0; // If we were shutdown while waiting in the queue, return with no action.
- CORBA::Boolean val = this->proxy_supplier_->check_filters (this->event_ ACE_ENV_ARG_PARAMETER);
+ TAO_NS_Admin* parent = this->proxy_supplier_->consumer_admin ();
+
+ CORBA::Boolean val = this->proxy_supplier_->check_filters (this->event_,
+ parent->filter_admin (),
+ parent->filter_operator ()
+ ACE_ENV_ARG_PARAMETER);
if (TAO_debug_level > 1)
ACE_DEBUG ((LM_DEBUG, "Proxysupplier %x filter eval result = %d",this->proxy_supplier_ , val));
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h
index 5e8c2de2223..862608c46a3 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.h
@@ -20,7 +20,9 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "Method_Request.h"
-#include "Types.h"
+#include "Refcountable.h"
+
+class TAO_NS_ProxySupplier;
/**
* @class TAO_NS_Method_Request_Dispatch
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp
index f90b566f39b..83626a87a1c 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.cpp
@@ -11,11 +11,6 @@ ACE_RCSID(RT_Notify, TAO_NS_Method_Request_Dispatch_No_Filtering, "$Id$")
#include "tao/debug.h"
#include "ProxySupplier.h"
#include "Consumer.h"
-#include "Proxy.h"
-#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
TAO_NS_Method_Request_Dispatch_No_Filtering::TAO_NS_Method_Request_Dispatch_No_Filtering (const TAO_NS_Event_var& event, TAO_NS_ProxySupplier* proxy_supplier)
: TAO_NS_Method_Request_Event (event), proxy_supplier_ (proxy_supplier), refcountable_guard_ (*proxy_supplier)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h
index 8056e7f4d86..153caadc5d5 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch_No_Filtering.h
@@ -20,7 +20,9 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "Method_Request.h"
-#include "Types.h"
+#include "Refcountable.h"
+
+class TAO_NS_ProxySupplier;
/**
* @class TAO_NS_Method_Request_Dispatch_No_Filtering
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp
index 54f9bb38702..5dc8208a752 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp
@@ -9,15 +9,12 @@
ACE_RCSID(RT_Notify, TAO_NS_Method_Request_Lookup, "$Id$")
#include "tao/debug.h"
-#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
-#include "Event_Map_T.h"
+#include "Consumer_Map.h"
#include "ProxySupplier.h"
#include "ProxyConsumer.h"
#include "Proxy.h"
#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
+#include "SupplierAdmin.h"
TAO_NS_Method_Request_Lookup::TAO_NS_Method_Request_Lookup (const TAO_NS_Event_var& event, TAO_NS_ProxyConsumer* proxy_consumer, TAO_NS_Consumer_Map* map)
: TAO_NS_Method_Request_Event (event), proxy_consumer_ (proxy_consumer), map_ (map),
@@ -42,7 +39,12 @@ TAO_NS_Method_Request_Lookup::execute (ACE_ENV_SINGLE_ARG_DECL)
if (this->proxy_consumer_->has_shutdown ())
return 0; // If we were shutdown while waiting in the queue, return with no action.
- CORBA::Boolean val = this->proxy_consumer_->check_filters (this->event_ ACE_ENV_ARG_PARAMETER);
+ TAO_NS_Admin* parent = this->proxy_consumer_->supplier_admin ();
+
+ CORBA::Boolean val = this->proxy_consumer_->check_filters (this->event_,
+ parent->filter_admin (),
+ parent->filter_operator ()
+ ACE_ENV_ARG_PARAMETER);
if (TAO_debug_level > 1)
ACE_DEBUG ((LM_DEBUG, "Proxyconsumer %x filter eval result = %d",this->proxy_consumer_ , val));
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h
index 9d22e5acf02..4de8749c7e9 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.h
@@ -21,7 +21,10 @@
#include "orbsvcs/ESF/ESF_Worker.h"
#include "Method_Request.h"
-#include "Types.h"
+#include "ProxySupplier.h"
+#include "Consumer_Map.h"
+
+class TAO_NS_ProxyConsumer;
/**
* @class TAO_NS_Method_Request_Lookup
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.h b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.h
index 00e68a21f18..282b5df3097 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Updates.h
@@ -20,13 +20,15 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "Method_Request.h"
-#include "Types.h"
#include "EventTypeSeq.h"
+#include "Refcountable.h"
+
+class TAO_NS_Proxy;
/**
* @class TAO_NS_Method_Request_Updates
*
- * @brief
+ * @brief Command Object to send updates to proxys.
*
*/
class TAO_Notify_Export TAO_NS_Method_Request_Updates : public TAO_NS_Method_Request
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp
index d2c836538e2..21bd6f97f15 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannelFactory_i.cpp
@@ -12,7 +12,7 @@ TAO_Notify_EventChannelFactory_i::create (PortableServer::POA_ptr default_POA AC
{
CosNotifyChannelAdmin::EventChannelFactory_var notify_factory;
- TAO_NS_Service* notify_service = ACE_Dynamic_Service<TAO_NS_Service>::instance (TAO_NS_COS_NOTIFICATION_SERVICE_NAME);
+ TAO_Notify_Service* notify_service = ACE_Dynamic_Service<TAO_Notify_Service>::instance (TAO_NS_COS_NOTIFICATION_SERVICE_NAME);
if (notify_service == 0)
{
@@ -38,10 +38,10 @@ TAO_Notify_EventChannelFactory_i::create (PortableServer::POA_ptr default_POA AC
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Dynamic_Service<TAO_NS_Service>;
+template class ACE_Dynamic_Service<TAO_Notify_Service>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Dynamic_Service<TAO_NS_Service>
+#pragma instantiate ACE_Dynamic_Service<TAO_Notify_Service>
#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp
deleted file mode 100644
index 628b37fc18e..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp
+++ /dev/null
@@ -1,452 +0,0 @@
-// $Id$
-
-#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
-#include "Notify_EventChannel_i.h"
-#include "Notify_EventChannelFactory_i.h"
-#include "Notify_SupplierAdmin_i.h"
-#include "Notify_ConsumerAdmin_i.h"
-#include "Notify_Event_Manager.h"
-#include "Notify_Channel_Objects_Factory.h"
-#include "Notify_POA_Factory.h"
-#include "Notify_Factory.h"
-#include "Notify_Event_Manager_Objects_Factory.h"
-#include "Notify_Collection_Factory.h"
-#include "Notify_AdminProperties.h"
-
-#include "tao/debug.h"
-
-ACE_RCSID(Notify, Notify_EventChannel_i, "$Id$")
-
-TAO_Notify_EventChannel_i::TAO_Notify_EventChannel_i (TAO_Notify_EventChannelFactory_i* my_factory)
- :lock_ (0),
- destory_child_POAs_ (0),
- channel_factory_ (my_factory),
- channel_objects_factory_ (TAO_Notify_Factory::
- get_channel_objects_factory ()),
- poa_factory_ (TAO_Notify_Factory::get_poa_factory ()),
- event_manager_objects_factory_ (TAO_Notify_Factory::create_event_manager_objects_factory ()),
- default_op_ (CosNotifyChannelAdmin::OR_OP),
- default_id_ (0),
- event_listener_list_ (0)
-{
- this->channel_factory_->_add_ref ();
-}
-
-// Implementation skeleton destructor
-TAO_Notify_EventChannel_i::~TAO_Notify_EventChannel_i (void)
-{
- if (TAO_debug_level > 0)
- ACE_DEBUG ((LM_DEBUG,"in EC dtor\n"));
- // Cleanup all resources..
-
- delete this->event_manager_;
- delete this->lock_;
- delete this->event_listener_list_;
-
- this->channel_factory_->event_channel_destroyed (this->channel_id_);
- this->channel_factory_->_remove_ref ();
-
- delete event_manager_objects_factory_;
-}
-
-void
-TAO_Notify_EventChannel_i::init (CosNotifyChannelAdmin::ChannelID channel_id, const CosNotification::QoSProperties& initial_qos, const CosNotification::AdminProperties& initial_admin, PortableServer::POA_ptr default_POA, PortableServer::POA_ptr my_POA ACE_ENV_ARG_DECL)
-{
- this->channel_id_ = channel_id;
-
- this->my_POA_ = PortableServer::POA::_duplicate (my_POA);
- this->default_POA_ = PortableServer::POA::_duplicate (default_POA);
-
- this->lock_ =
- this->channel_objects_factory_->create_event_channel_lock (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- this->event_manager_ =
- this->event_manager_objects_factory_->create_event_manager (this ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- // Set these before initializing the event manger.
- this->set_qos (initial_qos ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->event_manager_->init (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- // try to set initial admin params
- // This must be set after initializing the event manager
- // since it is the one that owns the admin properties.
- this->set_admin (initial_admin ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- // Create the POA for the CA's
- this->CA_POA_ =
- this->poa_factory_->create_consumer_admin_POA (this->my_POA_.in (), channel_id
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- // Create the POA for the SA's
- this->SA_POA_ =
- this->poa_factory_->create_supplier_admin_POA (this->my_POA_.in (), channel_id
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->event_listener_list_ =
- TAO_Notify_Factory::get_collection_factory ()->create_event_listener_list (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- // Create the default Consumer Admin. Because the ID_Pool is being used
- // the first time here, it will generate the id 0.
- CosNotifyChannelAdmin::AdminID id_unused;
-
- CosNotifyChannelAdmin::ConsumerAdmin_var def_consumer_admin =
- this->new_for_consumers (default_op_, id_unused ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- CosNotifyChannelAdmin::SupplierAdmin_var def_supplier_admin =
- this->new_for_suppliers (default_op_, id_unused ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-TAO_Notify_Event_Manager*
-TAO_Notify_EventChannel_i::get_event_manager (void)
-{
- return this->event_manager_;
-}
-
-void
-TAO_Notify_EventChannel_i::consumer_admin_destroyed (CosNotifyChannelAdmin::AdminID CA_ID)
-{
- this->consumer_admin_ids_.put (CA_ID);
-}
-
-void
-TAO_Notify_EventChannel_i::supplier_admin_destroyed (CosNotifyChannelAdmin::AdminID SA_ID)
-{
- this->supplier_admin_ids_.put (SA_ID);
-}
-
-PortableServer::POA_ptr
-TAO_Notify_EventChannel_i::get_default_POA (void)
-{
- return PortableServer::POA::_duplicate (this->default_POA_.in ());
-}
-
-CosNotifyChannelAdmin::EventChannel_ptr
-TAO_Notify_EventChannel_i::get_ref (ACE_ENV_SINGLE_ARG_DECL)
-{
- CORBA::Object_var obj = this->poa_factory_->
- servant_to_reference (this->my_POA_.in (), this ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannel::_nil ());
-
- return CosNotifyChannelAdmin::EventChannel::_narrow (obj.in ());
-}
-
-
-void
-TAO_Notify_EventChannel_i::unregister_listener (TAO_Notify_EventListener* group_listener ACE_ENV_ARG_DECL)
-{
- // UnRegister the group listener.
- this->event_listener_list_->disconnected (group_listener ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-void
-TAO_Notify_EventChannel_i::destroy (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- this->event_manager_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- // Deactivate ourselves.
- this->poa_factory_->deactivate_object (this,
- this->my_POA_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- // shutdown consumer admins's.
- TAO_Notify_Shutdown_Worker shutdown_worker;
-
- this->event_listener_list_->for_each (&shutdown_worker ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- // release all references.
- this->event_listener_list_->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- // @@ TODO: We need a way to send shutdown messages to the proxy consumers too.
- // (event listeners are proxy suppliers or CA's in disguise)
-
- this->poa_factory_->destroy_POA (this->CA_POA_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->poa_factory_->destroy_POA (this->SA_POA_.in ()
- ACE_ENV_ARG_PARAMETER);
-}
-
-const TAO_Notify_QoSAdmin_i&
-TAO_Notify_EventChannel_i::qos_admin (void) const
-{
- return this->qos_admin_;
-}
-
-CosNotifyChannelAdmin::EventChannelFactory_ptr
-TAO_Notify_EventChannel_i::MyFactory (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- return this->channel_factory_->get_ref (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-CosNotifyChannelAdmin::ConsumerAdmin_ptr
-TAO_Notify_EventChannel_i::default_consumer_admin (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- return this->get_consumeradmin (this->default_id_ ACE_ENV_ARG_PARAMETER);
-}
-
-CosNotifyChannelAdmin::SupplierAdmin_ptr
-TAO_Notify_EventChannel_i::default_supplier_admin (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- return this->get_supplieradmin (this->default_id_ ACE_ENV_ARG_PARAMETER);
-}
-
-CosNotifyFilter::FilterFactory_ptr
-TAO_Notify_EventChannel_i::default_filter_factory (ACE_ENV_SINGLE_ARG_DECL_NOT_USED/*ACE_ENV_SINGLE_ARG_PARAMETER*/)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- return this->channel_factory_->get_default_filter_factory ();
-}
-
-CosNotifyChannelAdmin::ConsumerAdmin_ptr
-TAO_Notify_EventChannel_i::new_for_consumers (CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- // @@ use auto_ptr
- TAO_Notify_ConsumerAdmin_i* consumer_admin =
- this->channel_objects_factory_->create_consumer_admin (this ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
-
- PortableServer::ServantBase_var consumeradmin_var (consumer_admin);
-
- {
- ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_,
- CORBA::INTERNAL ());
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
-
- id = this->consumer_admin_ids_.get ();
- }
-
- consumer_admin->init (id, op, this->CA_POA_.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
-
- CORBA::Object_var obj =
- this->poa_factory_->activate_object_with_id (id,
- this->CA_POA_.in (),
- consumer_admin
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
-
- // Register the group listener.
- this->event_listener_list_->connected (consumer_admin ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
-
- this->consumer_admin_ids_.next ();
- return CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in ());
-}
-
-CosNotifyChannelAdmin::SupplierAdmin_ptr
-TAO_Notify_EventChannel_i::new_for_suppliers (CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- TAO_Notify_SupplierAdmin_i* supplieradmin =
- this->channel_objects_factory_->create_supplier_admin (this ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ());
-
- PortableServer::ServantBase_var supplieradmin_var (supplieradmin);
-
- {
- ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_,
- CORBA::INTERNAL ());
- id = this->supplier_admin_ids_.get ();
- }
-
- supplieradmin->init (id, op, this->SA_POA_.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ());
-
- CORBA::Object_var obj = this->poa_factory_->
- activate_object_with_id (id,
- this->SA_POA_.in (),
- supplieradmin
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ());
-
- this->supplier_admin_ids_.next ();
- return CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in ());
-}
-
-CosNotifyChannelAdmin::ConsumerAdmin_ptr
-TAO_Notify_EventChannel_i::get_consumeradmin (CosNotifyChannelAdmin::AdminID id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotifyChannelAdmin::AdminNotFound
- ))
-{
- CORBA::Object_var obj =
- this->poa_factory_->id_to_reference (id, this->CA_POA_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ConsumerAdmin::_nil ());
-
- return CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in ());
-}
-
-CosNotifyChannelAdmin::SupplierAdmin_ptr
-TAO_Notify_EventChannel_i::get_supplieradmin (CosNotifyChannelAdmin::AdminID id ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotifyChannelAdmin::AdminNotFound
- ))
-{
- CORBA::Object_var obj =
- this->poa_factory_->id_to_reference (id, this->SA_POA_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::SupplierAdmin::_nil ());
-
- return CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in ());
-}
-
-CosNotifyChannelAdmin::AdminIDSeq*
-TAO_Notify_EventChannel_i::get_all_consumeradmins (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- return this->consumer_admin_ids_.get_sequence (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-CosNotifyChannelAdmin::AdminIDSeq*
-TAO_Notify_EventChannel_i::get_all_supplieradmins (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- ACE_GUARD_THROW_EX (ACE_Lock, ace_mon, *this->lock_,
- CORBA::INTERNAL ());
- ACE_CHECK_RETURN (0);
-
- return this->supplier_admin_ids_.get_sequence (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-CosNotification::QoSProperties*
-TAO_Notify_EventChannel_i::get_qos (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- return this->qos_admin_.get_qos (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-void
-TAO_Notify_EventChannel_i::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotification::UnsupportedQoS
- ))
-{
- this->qos_admin_.set_qos (qos ACE_ENV_ARG_PARAMETER);
-}
-
-void
-TAO_Notify_EventChannel_i::validate_qos (const CosNotification::QoSProperties & required_qos, CosNotification::NamedPropertyRangeSeq_out available_qos ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotification::UnsupportedQoS
- ))
-{
- this->qos_admin_.validate_qos (required_qos, available_qos ACE_ENV_ARG_PARAMETER);
-}
-
-CosNotification::AdminProperties*
-TAO_Notify_EventChannel_i::get_admin (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- // Delegate to Event Manager.
- return this->event_manager_->admin_properties ()->get_admin (ACE_ENV_SINGLE_ARG_PARAMETER);
-}
-
-void
-TAO_Notify_EventChannel_i::set_admin (const CosNotification::AdminProperties & admin ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotification::UnsupportedAdmin
- ))
-{
- this->event_manager_->admin_properties ()->set_admin (admin ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->event_manager_->update_task_admins ();
-}
-
-CosEventChannelAdmin::ConsumerAdmin_ptr
-TAO_Notify_EventChannel_i::for_consumers (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- // There is no way to destroy CosEventChannelAdmin::ConsumerAdmin's
- // so we just return the default Consumer Admin here.
- // TODO: find a way to disable the destroy method in the default Admin.
-
- CORBA::Object_var obj =
- this->get_consumeradmin (this->default_id_ ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosEventChannelAdmin::ConsumerAdmin::_nil ());
-
- return CosEventChannelAdmin::ConsumerAdmin::_narrow (obj.in ()
- ACE_ENV_ARG_PARAMETER);
-}
-
-CosEventChannelAdmin::SupplierAdmin_ptr
-TAO_Notify_EventChannel_i::for_suppliers (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- CORBA::Object_var obj =
- this->get_supplieradmin (this->default_id_ ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosEventChannelAdmin::SupplierAdmin::_nil ());
-
- return CosEventChannelAdmin::SupplierAdmin::_narrow (obj.in ()
- ACE_ENV_ARG_PARAMETER);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::AdminID, CosNotifyChannelAdmin::AdminIDSeq>;
-template class TAO_Notify_ID_Pool<CosNotifyChannelAdmin::AdminID>;
-
-template class ACE_Unbounded_Set<CosNotifyChannelAdmin::AdminID>;
-template class ACE_Unbounded_Set_Iterator<CosNotifyChannelAdmin::AdminID>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::AdminID, CosNotifyChannelAdmin::AdminIDSeq>
-#pragma instantiate TAO_Notify_ID_Pool<CosNotifyChannelAdmin::AdminID>
-
-#pragma instantiate ACE_Unbounded_Set<CosNotifyChannelAdmin::AdminID>
-#pragma instantiate ACE_Unbounded_Set_Iterator<CosNotifyChannelAdmin::AdminID>
-
-#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h
deleted file mode 100644
index 74d7a6601d8..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.h
+++ /dev/null
@@ -1,318 +0,0 @@
-//=============================================================================
-/**
- * @file Notify_EventChannel_i.h
- *
- * $Id$
- *
- * Implements the CosNotifyChannelAdmin::EventChannel interface.
- *
- *
- * @author Pradeep Gore <pradeep@cs.wustl.edu>
- */
-//=============================================================================
-
-
-#ifndef TAO_NOTIFY_EVENTCHANNEL_I_H_
-#define TAO_NOTIFY_EVENTCHANNEL_I_H_
-#include "ace/pre.h"
-#include "ace/Hash_Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-#pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "orbsvcs/CosNotifyChannelAdminS.h"
-#include "Notify_ID_Pool_T.h"
-#include "Notify_QoSAdmin_i.h"
-#include "Notify_Collection.h"
-
-class TAO_Notify_EventChannelFactory_i;
-class TAO_Notify_Resource_Manager;
-class TAO_Notify_Event_Manager;
-class TAO_Notify_CO_Factory;
-class TAO_Notify_POA_Factory;
-class TAO_Notify_EMO_Factory;
-class TAO_Notify_EventListener;
-
-#if defined (_MSC_VER)
-#if (_MSC_VER >= 1200)
-#pragma warning (push)
-#endif /* _MSC_VER >= 1200 */
-#pragma warning (disable:4250)
-#endif /* _MSC_VER */
-
- /**
- * @class TAO_Notify_EventChannel_i
- *
- * @brief TAO_Notify_EventChannel_i
- *
- * This class handles all the object factory functionality.All the event
- * routing is handled by its contained Event Manager class.
- * = MISC. NOTES
- * This class creates and owns 2 child POA's. one to contain CA's and the other for SA's.
- * Now, a Channel object can be destoyed in 2 ways - as a side effect of its parent POA being
- * destroyed or if this class's <destroy> method is invoked. If the object is being destroyed
- * as a result of its Parent POA being destroyed, it is illegal to destroy a childPOA
- * because, the root poa destruction will destroy all child poa's.
- * So in the destructor we conditionally check if the child POAs should be destroyed explicitly
- * or not.
- */
-class TAO_Notify_Export TAO_Notify_EventChannel_i : public virtual POA_CosNotifyChannelAdmin::EventChannel, public PortableServer::RefCountServantBase
-{
- public:
- /// Constructor.
- /// <channel_factory> is the parent.
- TAO_Notify_EventChannel_i (TAO_Notify_EventChannelFactory_i* channel_factory);
-
- /// Destructor
- virtual ~TAO_Notify_EventChannel_i (void);
-
- /**
- * Initialize this object.
- * checks if the <initial_qos> and <initial admin> are valid.
- * creates default filter, consumer admin and supplier admin.
- */
- void init (CosNotifyChannelAdmin::ChannelID channel_id,
- const CosNotification::QoSProperties& initial_qos,
- const CosNotification::AdminProperties& initial_admin,
- PortableServer::POA_ptr default_POA,
- PortableServer::POA_ptr my_POA
- ACE_ENV_ARG_DECL);
-
- // = Accessors
- /// Get the default POA.
- PortableServer::POA_ptr get_default_POA (void);
-
- /// Get the CORBA object for this servant
- CosNotifyChannelAdmin::EventChannel_ptr get_ref (ACE_ENV_SINGLE_ARG_DECL);
-
- /// Get the event manager.
- TAO_Notify_Event_Manager* get_event_manager (void);
-
- // = Child destroyed notification.
- /// This id is no longer in use.It can be reused by <consumer_admin_ids_>.
- void consumer_admin_destroyed (CosNotifyChannelAdmin::AdminID CA_ID);
-
- /// This id is no longer in use.It can be reused by <supplier_admin_ids_>.
- void supplier_admin_destroyed (CosNotifyChannelAdmin::AdminID SA_ID);
-
- /// Consumer Admin's are Group Listeners that are registered automatically with the EC when a ConsumerAdmin
- /// is created. When a consumer is destroyed, it asks the EC to unregister itself.
- void unregister_listener (TAO_Notify_EventListener* group_listener ACE_ENV_ARG_DECL);
-
- // = Interface methods
- virtual CosNotifyChannelAdmin::EventChannelFactory_ptr MyFactory (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
-virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr default_consumer_admin (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
-virtual CosNotifyChannelAdmin::SupplierAdmin_ptr default_supplier_admin (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
-virtual CosNotifyFilter::FilterFactory_ptr default_filter_factory (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
-virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr new_for_consumers (
- CosNotifyChannelAdmin::InterFilterGroupOperator op,
- CosNotifyChannelAdmin::AdminID_out id
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
-virtual CosNotifyChannelAdmin::SupplierAdmin_ptr new_for_suppliers (
- CosNotifyChannelAdmin::InterFilterGroupOperator op,
- CosNotifyChannelAdmin::AdminID_out id
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
-virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr get_consumeradmin (
- CosNotifyChannelAdmin::AdminID id
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotifyChannelAdmin::AdminNotFound
- ));
-
-virtual CosNotifyChannelAdmin::SupplierAdmin_ptr get_supplieradmin (
- CosNotifyChannelAdmin::AdminID id
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotifyChannelAdmin::AdminNotFound
- ));
-
-virtual CosNotifyChannelAdmin::AdminIDSeq * get_all_consumeradmins (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
-virtual CosNotifyChannelAdmin::AdminIDSeq * get_all_supplieradmins (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
-virtual CosNotification::QoSProperties * get_qos (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
- virtual void set_qos (
- const CosNotification::QoSProperties & qos
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotification::UnsupportedQoS
- ));
-
- virtual void validate_qos (
- const CosNotification::QoSProperties & required_qos,
- CosNotification::NamedPropertyRangeSeq_out available_qos
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotification::UnsupportedQoS
- ));
-
- virtual CosNotification::AdminProperties * get_admin (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
- virtual void set_admin (
- const CosNotification::AdminProperties & admin
- ACE_ENV_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- CosNotification::UnsupportedAdmin
- ));
-
- virtual CosEventChannelAdmin::ConsumerAdmin_ptr for_consumers (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
- virtual CosEventChannelAdmin::SupplierAdmin_ptr for_suppliers (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
- virtual void destroy (
- ACE_ENV_SINGLE_ARG_DECL
- )
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ));
-
- const TAO_Notify_QoSAdmin_i& qos_admin (void) const;
-
-protected:
- // = Data Members
- /// The locking strategy.
- ACE_Lock* lock_;
-
- /**
- * Flag to tell our destructor if we should destroy the CA and SA POA's.
- * default is false, the parent poa destruction will remove these.
- * set to true if the <destroy> method is invoked.
- */
- CORBA::Boolean destory_child_POAs_;
-
- /// The factory that created us.
- TAO_Notify_EventChannelFactory_i* channel_factory_;
-
- /// The default POA in which we activate objects that don't have ids' pre-assigned.
- PortableServer::POA_var default_POA_;
-
- /// The POA in which i live.
- PortableServer::POA_var my_POA_;
-
- /// The POA in which we should activate ConsumerAdmins in.
- /// We create and own this.
- PortableServer::POA_var CA_POA_;
-
- /// The POA in which we should activate SupplierAdmins in.
- /// We create and own this.
- PortableServer::POA_var SA_POA_;
-
- /// The ID assigned to this channel.
- CosNotifyChannelAdmin::ChannelID channel_id_;
-
- /// The factory for channel objects.
- TAO_Notify_CO_Factory* channel_objects_factory_;
-
- /// The factory for POA based containers.
- TAO_Notify_POA_Factory* poa_factory_;
-
- /// Event manager objects factory,
- TAO_Notify_EMO_Factory* event_manager_objects_factory_;
-
- /// Id generator for consumer admins.
- TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::AdminID,
- CosNotifyChannelAdmin::AdminIDSeq> consumer_admin_ids_;
-
- /// Id generator for supplier admins.
- TAO_Notify_ID_Pool_Ex<CosNotifyChannelAdmin::AdminID,
- CosNotifyChannelAdmin::AdminIDSeq> supplier_admin_ids_;
-
- /// Default InterFilterGroupOperator operator used when creating
- /// the default ConsumerAdmin and SupplierAdmin.
- const CosNotifyChannelAdmin::InterFilterGroupOperator default_op_;
-
- /// Default id's to CosEventChannelAdmin::ConsumerAdmin, SupplierAdmin.
- const CosNotifyChannelAdmin::AdminID default_id_;
-
- /// Handle QoS admin methods.
- TAO_Notify_QoSAdmin_i qos_admin_;
-
- /// The event manager.
- TAO_Notify_Event_Manager* event_manager_;
-
- /// The list of group event listeners that have registered with us.
- TAO_Notify_EventListener_List* event_listener_list_;
-};
-
-#if defined (_MSC_VER) && (_MSC_VER >= 1200)
-#pragma warning (pop)
-#endif /* _MSC_VER */
-
-#include "ace/post.h"
-#endif /* TAO_NOTIFY_EVENTCHANNEL_I_H_ */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.inl b/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.inl
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Service.inl
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object.cpp b/TAO/orbsvcs/orbsvcs/Notify/Object.cpp
index ff30657d816..825f6ab6075 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Object.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Object.cpp
@@ -16,39 +16,57 @@
ACE_RCSID(RT_Notify, TAO_NS_Object, "$Id$")
TAO_NS_Object::TAO_NS_Object (void)
- :event_manager_ (0), admin_properties_ (0), id_ (0), poa_ (0), worker_task_ (0), own_worker_task_ (0), proxy_poa_ (0), own_proxy_poa_ (0), shutdown_ (0)
+ : event_manager_ (0)
+ , admin_properties_ (0)
+ , id_ (0)
+ , poa_ (0)
+ , proxy_poa_ (0)
+ , own_proxy_poa_ (0)
+ , object_poa_ (0)
+ , own_object_poa_ (0)
+ , worker_task_ (0)
+ , own_worker_task_ (0)
+ , shutdown_ (0)
{
- if (TAO_debug_level > 1 )
+ if (TAO_debug_level > 2 )
ACE_DEBUG ((LM_DEBUG,"object:%x created\n", this ));
}
TAO_NS_Object::~TAO_NS_Object ()
{
- if (TAO_debug_level > 1 )
+ if (TAO_debug_level > 2 )
ACE_DEBUG ((LM_DEBUG,"object:%x destroyed\n", this ));
}
void
-TAO_NS_Object::init (TAO_NS_POA_Helper* poa, TAO_NS_POA_Helper* proxy_poa, TAO_NS_Worker_Task* worker_task)
+TAO_NS_Object::init (TAO_NS_Object* parent)
{
- poa_ = poa;
- proxy_poa_ = proxy_poa;
- worker_task_ = worker_task;
+ this->event_manager_ = parent->event_manager_;
+ this->admin_properties_ = parent->admin_properties_;
+
+ this->poa_ = parent->poa_;
+ this->object_poa_ = parent->object_poa_;
+ this->proxy_poa_ = parent->proxy_poa_;
+ this->worker_task_ = parent->worker_task_;
if (this->worker_task_)
this->worker_task_->_incr_refcnt ();
+
+ // Pass QoS
+ parent->qos_properties_.transfer (this->qos_properties_);
+ this->qos_changed (this->qos_properties_);
}
CORBA::Object_ptr
-TAO_NS_Object::activate (ACE_ENV_SINGLE_ARG_DECL)
+TAO_NS_Object::activate (PortableServer::Servant servant ACE_ENV_ARG_DECL)
{
- return poa_->activate (this->servant (), id_ ACE_ENV_ARG_PARAMETER);
+ return this->poa_->activate (servant, this->id_ ACE_ENV_ARG_PARAMETER);
}
void
TAO_NS_Object::deactivate (ACE_ENV_SINGLE_ARG_DECL)
{
- poa_->deactivate (id_ ACE_ENV_ARG_PARAMETER);
+ this->poa_->deactivate (this->id_ ACE_ENV_ARG_PARAMETER);
}
int
@@ -74,14 +92,14 @@ TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_DECL)
CORBA::Object_ptr
TAO_NS_Object::ref (ACE_ENV_SINGLE_ARG_DECL)
{
- return poa_->id_to_reference (id_ ACE_ENV_ARG_PARAMETER);
+ return this->poa_->id_to_reference (this->id_ ACE_ENV_ARG_PARAMETER);
}
void
TAO_NS_Object::shutdown_worker_task (void)
{
// Only do this if we are the owner.
- if (own_worker_task_ == 1)
+ if (this->own_worker_task_ == 1)
{
this->worker_task_->shutdown (); // the worker deletes itself when its <close> hook is eventually called.
}
@@ -93,11 +111,44 @@ TAO_NS_Object::shutdown_worker_task (void)
void
TAO_NS_Object::shutdown_proxy_poa (void)
{
- if (own_proxy_poa_ == 1)
+ if (this->own_proxy_poa_ == 1)
{
- ACE_DECLARE_NEW_CORBA_ENV;
- proxy_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
- delete proxy_poa_;
+ ACE_TRY_NEW_ENV
+ {
+ this->proxy_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ delete this->proxy_poa_;
+ }
+ ACE_CATCHANY
+ {
+ if (TAO_debug_level > 2)
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "Proxy shutdown error (%P|%t)\n");
+ }
+ ACE_ENDTRY;
+ }
+}
+
+void
+TAO_NS_Object::shutdown_object_poa (void)
+{
+ if (this->own_object_poa_ == 1)
+ {
+ ACE_TRY_NEW_ENV
+ {
+ this->object_poa_->destroy (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+
+ delete this->object_poa_;
+ }
+ ACE_CATCHANY
+ {
+ if (TAO_debug_level > 2)
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
+ "Proxy shutdown error (%P|%t)\n");
+ }
+ ACE_ENDTRY;
}
}
@@ -125,9 +176,9 @@ TAO_NS_Object::worker_task (TAO_NS_Worker_Task* worker_task)
}
void
-TAO_NS_Object::proxy_poa (TAO_NS_POA_Helper* proxy_poa)
+TAO_NS_Object::proxy_poa_own (TAO_NS_POA_Helper* proxy_poa)
{
- // shutdown current poa.
+ // shutdown current proxy poa.
this->shutdown_proxy_poa ();
this->proxy_poa_ = proxy_poa;
@@ -137,78 +188,54 @@ TAO_NS_Object::proxy_poa (TAO_NS_POA_Helper* proxy_poa)
}
void
+TAO_NS_Object::object_poa_own (TAO_NS_POA_Helper* object_poa)
+{
+ // shutdown current object poa.
+ this->shutdown_object_poa ();
+
+ // shutdown current object poa
+ this->object_poa_ = object_poa;
+
+ // claim ownership.
+ this->own_object_poa_ = 1;
+}
+
+void
TAO_NS_Object::set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL)
{
CosNotification::PropertyErrorSeq err_seq;
- TAO_NS_QoSProperties qos_properties;
+ TAO_NS_QoSProperties new_qos_properties;
- qos_properties.init (qos, err_seq);
+ if (new_qos_properties.init (qos, err_seq) == -1)
+ ACE_THROW (CORBA::INTERNAL ());
// Apply the appropriate concurrency QoS
- if (qos_properties.thread_pool ().is_valid ())
+ if (new_qos_properties.thread_pool ().is_valid ())
{
- if (qos_properties.thread_pool ().value ().static_threads == 0)
- this->apply_reactive_concurrency (ACE_ENV_SINGLE_ARG_PARAMETER);
+ if (new_qos_properties.thread_pool ().value ().static_threads == 0)
+ TAO_NS_PROPERTIES::instance()->builder()->apply_reactive_concurrency (*this ACE_ENV_ARG_PARAMETER);
else
- this->apply_thread_pool_concurrency (qos_properties.thread_pool ().value () ACE_ENV_ARG_PARAMETER);
+ TAO_NS_PROPERTIES::instance()->builder()->
+ apply_thread_pool_concurrency (*this, new_qos_properties.thread_pool ().value () ACE_ENV_ARG_PARAMETER);
}
- else if (qos_properties.thread_pool_lane ().is_valid ())
- this->apply_lane_concurrency (qos_properties.thread_pool_lane ().value () ACE_ENV_ARG_PARAMETER);
+ else if (new_qos_properties.thread_pool_lane ().is_valid ())
+ TAO_NS_PROPERTIES::instance()->builder()->
+ apply_lane_concurrency (*this, new_qos_properties.thread_pool_lane ().value () ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
// Update the Thread Task's QoS properties..
- this->worker_task_->update_qos_properties (qos_properties);
+ this->worker_task_->update_qos_properties (new_qos_properties);
// Inform subclasses of QoS changed.
- this->qos_changed (qos_properties);
+ this->qos_changed (new_qos_properties);
// Init the the overall QoS on this object.
- if (this->qos_properties_.init (qos, err_seq) == 1) // Unsupported Property
- ACE_THROW (CosNotification::UnsupportedQoS (err_seq));
-}
-
-void
-TAO_NS_Object::apply_reactive_concurrency (ACE_ENV_SINGLE_ARG_DECL)
-{
- TAO_NS_Reactive_Task* worker_task;
-
- ACE_NEW_THROW_EX (worker_task,
- TAO_NS_Reactive_Task (),
- CORBA::NO_MEMORY ());
- ACE_CHECK;
-
- worker_task->init (this->admin_properties_ ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->worker_task_own (worker_task);
+ if (new_qos_properties.copy (this->qos_properties_) == -1)
+ ACE_THROW (CORBA::INTERNAL ());
- this->worker_task_->_decr_refcnt ();
-}
-
-void
-TAO_NS_Object::apply_thread_pool_concurrency (const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL)
-{
- TAO_NS_ThreadPool_Task* worker_task;
-
- ACE_NEW_THROW_EX (worker_task,
- TAO_NS_ThreadPool_Task (),
- CORBA::NO_MEMORY ());
- ACE_CHECK;
-
- worker_task->init (tp_params, this->admin_properties_ ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->worker_task_own (worker_task);
-
- this->worker_task_->_decr_refcnt ();
-}
-
-void
-TAO_NS_Object::apply_lane_concurrency (const NotifyExt::ThreadPoolLanesParams& /*tpl_params*/ ACE_ENV_ARG_DECL)
-{
- // No lane support
- ACE_THROW (CORBA::NO_IMPLEMENT ());
+ if (err_seq.length () > 0) // Unsupported Property
+ ACE_THROW (CosNotification::UnsupportedQoS (err_seq));
}
CosNotification::QoSProperties*
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object.h b/TAO/orbsvcs/orbsvcs/Notify/Object.h
index 5c071d37d48..43c2906996b 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Object.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Object.h
@@ -19,10 +19,8 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "tao/corba.h"
#include "tao/PortableServer/Servant_Base.h"
#include "orbsvcs/NotifyExtC.h"
-#include "Types.h"
#include "QoSProperties.h"
#include "AdminProperties.h"
#include "Refcountable.h"
@@ -33,14 +31,6 @@ class TAO_NS_Event_Manager;
class TAO_NS_Timer;
/**
- * @class TAO_NS_Object_Id
- *
- * @brief Id for Objects.
- *
- */
-typedef CORBA::Long TAO_NS_Object_Id;
-
-/**
* @class TAO_NS_Object
*
* @brief Base Object for RT_Notify's CORBA Objects.
@@ -51,24 +41,27 @@ class TAO_Notify_Export TAO_NS_Object : public TAO_NS_Refcountable
friend class TAO_NS_Builder;
public:
+ /// Id for Objects.
+ typedef CORBA::Long ID;
+
/// Constuctor
TAO_NS_Object (void);
/// Destructor
virtual ~TAO_NS_Object (void);
- /// Init.
- void init (TAO_NS_POA_Helper* poa, TAO_NS_POA_Helper* proxy_poa, TAO_NS_Worker_Task* worker_task);
-
/// This Object's ID
- CORBA::Long id (void);
+ ID id (void);
/// Activate
- CORBA::Object_ptr activate (ACE_ENV_SINGLE_ARG_DECL);
+ virtual CORBA::Object_ptr activate (PortableServer::Servant servant ACE_ENV_ARG_DECL);
/// Deactivate
void deactivate (ACE_ENV_SINGLE_ARG_DECL);
+ /// Have we been shutdown. returns 1 if shutdown.
+ int has_shutdown (void);
+
/// Get CORBA Ref.
CORBA::Object_ptr ref (ACE_ENV_SINGLE_ARG_DECL);
@@ -79,54 +72,51 @@ public:
TAO_NS_POA_Helper* poa (void);
/// Setting the proxy_poa_ gives ownership to this class.
- void proxy_poa (TAO_NS_POA_Helper* proxy_poa);
+ void proxy_poa_own (TAO_NS_POA_Helper* proxy_poa);
/// Accessor for the proxy_poa_
TAO_NS_POA_Helper* proxy_poa (void);
+ /// Setting the object_poa_ gives ownership to this class.
+ void object_poa_own (TAO_NS_POA_Helper* object_poa);
+
+ /// Accessor for the object_poa_
+ TAO_NS_POA_Helper* object_poa (void);
+
/// Set Worker Task. This object assume ownership of the set object.
void worker_task_own (TAO_NS_Worker_Task* worker_task);
/// Set Worker Task. Does not assume ownership.
void worker_task (TAO_NS_Worker_Task* worker_task);
- /// Get the QoS Properties.
- CosNotification::QoSProperties* get_qos (ACE_ENV_SINGLE_ARG_DECL);
-
- /// shutdown
- virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
-
- /// Have we been shutdown. returns 1 if shutdown.
- int has_shutdown (void);
-
/// Set the QoS Properties.
virtual void set_qos (const CosNotification::QoSProperties & qos ACE_ENV_ARG_DECL);
+ /// Get the QoS Properties.
+ CosNotification::QoSProperties* get_qos (ACE_ENV_SINGLE_ARG_DECL);
+
/// Obtain the Timer manager associated with this object.
virtual TAO_NS_Timer* timer (void);
+ /// shutdown. Returns 1 ifif the shutdown was already run once before.
+ virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
+
protected:
+ /// Init this object with data from <rhs>.
+ void init (TAO_NS_Object* parent);
+
/// Shutdown the current worker task and delete it if we own it.
void shutdown_worker_task (void);
/// Shutdown the current proxy poa.
void shutdown_proxy_poa (void);
+ /// Shutdown the current object poa.
+ void shutdown_object_poa (void);
+
/// Notification that can be overridden by subclasses to be informed that <qos_properties_> have been modified.
virtual void qos_changed (const TAO_NS_QoSProperties& qos_properties);
- /// Servant which we use. This must be implemented by subclasses.
- virtual PortableServer::Servant servant (void) = 0;
-
- /// Apply Reactive concurrency.
- virtual void apply_reactive_concurrency (ACE_ENV_SINGLE_ARG_DECL);
-
- /// Apply Thread Pools.
- virtual void apply_thread_pool_concurrency (const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL);
-
- /// Apply Thread Pools with Lanes.
- virtual void apply_lane_concurrency (const NotifyExt::ThreadPoolLanesParams& tpl_params ACE_ENV_ARG_DECL);
-
///= Protected data members.
/// The event manager.
@@ -139,23 +129,29 @@ protected:
TAO_NS_QoSProperties qos_properties_;
/// Id assigned to this object
- TAO_NS_Object_Id id_;
+ ID id_;
/// The POA in which the object is activated.
TAO_NS_POA_Helper* poa_;
- /// Worker Task.
- TAO_NS_Worker_Task* worker_task_;
-
- /// Ownership flag
- int own_worker_task_;
-
/// The POA in which the proxys are activated.
TAO_NS_POA_Helper* proxy_poa_;
/// Flag that indicates if we own <proxy_poa_>
int own_proxy_poa_;
+ /// The POA in which the object's children are activated.
+ TAO_NS_POA_Helper* object_poa_;
+
+ /// Flag that indicates if we own <object_poa_>
+ int own_object_poa_;
+
+ /// Worker Task.
+ TAO_NS_Worker_Task* worker_task_;
+
+ /// Ownership flag
+ int own_worker_task_;
+
/// Are we shutdown (i,e. scheduled for destroy).
int shutdown_;
};
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object.inl b/TAO/orbsvcs/orbsvcs/Notify/Object.inl
index 03cc08ab9a2..251c0655e6d 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Object.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/Object.inl
@@ -19,6 +19,12 @@ TAO_NS_Object::poa (void)
}
ACE_INLINE TAO_NS_POA_Helper*
+TAO_NS_Object::object_poa (void)
+{
+ return this->object_poa_;
+}
+
+ACE_INLINE TAO_NS_POA_Helper*
TAO_NS_Object::proxy_poa (void)
{
return this->proxy_poa_;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Object_T.cpp
deleted file mode 100644
index 05ce6cdad63..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Object_T.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// $Id$
-
-#ifndef TAO_NS_OBJECT_T_CPP
-#define TAO_NS_OBJECT_T_CPP
-
-#include "Object_T.h"
-#include "orbsvcs/ESF/ESF_RefCount_Guard.h"
-
-#if ! defined (__ACE_INLINE__)
-#include "Object_T.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(RT_Notify, TAO_NS_Object, "$Id$")
-
-template <class TYPE, class PARENT>
-TAO_NS_Object_T<TYPE, PARENT>::TAO_NS_Object_T (void)
- :parent_ (0)
-{
-}
-
-template <class TYPE, class PARENT>
-TAO_NS_Object_T<TYPE, PARENT>::~TAO_NS_Object_T ()
-{
- if (parent_)
- this->parent_-> _decr_refcnt ();
-}
-
-template <class TYPE, class PARENT> int
-TAO_NS_Object_T<TYPE, PARENT>::destroy (TYPE *type ACE_ENV_ARG_DECL)
-{
- if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
- return 1;
-
- ACE_CHECK_RETURN (1);
-
- if (parent_)
- this->parent_->remove (type ACE_ENV_ARG_PARAMETER);
-
- return 0;
-}
-
-#endif /* TAO_NS_OBJECT_T_CPP */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object_T.h b/TAO/orbsvcs/orbsvcs/Notify/Object_T.h
deleted file mode 100644
index 342ee062588..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Object_T.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file Object_T.h
- *
- * $Id$
- *
- * @author Pradeep Gore <pradeep@oomworks.com>
- *
- *
- */
-
-#ifndef TAO_NS_OBJECT_T_H
-#define TAO_NS_OBJECT_T_H
-#include "ace/pre.h"
-
-#include "notify_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Object.h"
-
-/**
- * @class TAO_NS_Object_T
- *
- * @brief Base attributes of all EC participants.
- *
- */
-template <class TYPE, class PARENT>
-class TAO_NS_Object_T : public virtual TAO_NS_Object
-{
-public:
- /// Constuctor
- TAO_NS_Object_T (void);
-
- /// Destructor
- virtual ~TAO_NS_Object_T ();
-
- /// destroy <type>. returns 1 if already run destroy.
- int destroy (TYPE* type ACE_ENV_ARG_DECL);
-
-protected:
- /// = Data Members
-
- /// Parent
- PARENT* parent_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "Object_T.inl"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Object_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Object_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#include "ace/post.h"
-#endif /* TAO_NS_OBJECT_T_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Object_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Object_T.inl
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Object_T.inl
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$
diff --git a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp b/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp
index 34a959d79fc..36b950eec2b 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp
@@ -39,7 +39,6 @@ TAO_NS_POA_Helper::init (PortableServer::POA_ptr parent_poa ACE_ENV_ARG_DECL)
this->init (parent_poa, child_poa_name ACE_ENV_ARG_PARAMETER);
}
-
void
TAO_NS_POA_Helper::set_policy (PortableServer::POA_ptr parent_poa, CORBA::PolicyList &policy_list ACE_ENV_ARG_DECL)
{
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Peer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Peer.cpp
index c3d84fdf1ed..4a26d732d85 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Peer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Peer.cpp
@@ -10,11 +10,6 @@ ACE_RCSID(Notify, TAO_NS_Peer, "$id$")
#include "tao/debug.h"
#include "Proxy.h"
-#include "Proxy.h"
-#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
TAO_NS_Peer::TAO_NS_Peer (void)
{
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Peer.h b/TAO/orbsvcs/orbsvcs/Notify/Peer.h
index ecebddc287b..13dd08e5ab2 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Peer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Peer.h
@@ -20,14 +20,12 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "orbsvcs/CosNotificationC.h"
-#include "Destroy_Callback.h"
#include "EventTypeSeq.h"
class TAO_NS_Proxy;
class TAO_NS_QoSProperties;
class TAO_NS_Peer;
-
/**
* @class TAO_NS_Peer
*
@@ -35,7 +33,7 @@ class TAO_NS_Peer;
* This object delegates its reference count to its creator proxy object.
*
*/
-class TAO_Notify_Export TAO_NS_Peer : public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_Peer
{
public:
/// Constuctor
@@ -48,6 +46,9 @@ public:
CORBA::ULong _incr_refcnt (void);
CORBA::ULong _decr_refcnt (void);
+ /// Release
+ virtual void release (void) = 0;
+
/// Shutdown the peer.
virtual void shutdown (ACE_ENV_SINGLE_ARG_DECL);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy.cpp b/TAO/orbsvcs/orbsvcs/Notify/Proxy.cpp
index 906d4442389..dd1cd160f13 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Proxy.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Proxy.cpp
@@ -10,10 +10,6 @@ ACE_RCSID(RT_Notify, TAO_NS_Proxy, "$Id$")
#include "Peer.h"
#include "Proxy.h"
-#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
#include "Method_Request_Updates.h"
#include "Worker_Task.h"
#include "Properties.h"
@@ -28,6 +24,17 @@ TAO_NS_Proxy::~TAO_NS_Proxy ()
}
void
+TAO_NS_Proxy::init (TAO_NS_Admin *admin ACE_ENV_ARG_DECL_NOT_USED)
+{
+ TAO_NS_Object::init (admin);
+
+ // For Proxy's the object should be activated in the proxy poa.
+ // so we override the default initialization in TAO_NS_Object
+
+ this->poa_ = this->proxy_poa_;
+}
+
+void
TAO_NS_Proxy::subscribed_types (TAO_NS_EventTypeSeq& subscribed_types ACE_ENV_ARG_DECL)
{
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
@@ -55,16 +62,19 @@ TAO_NS_Proxy::types_changed (const TAO_NS_EventTypeSeq& added, const TAO_NS_Even
}
CORBA::Boolean
-TAO_NS_Proxy::check_filters (const TAO_NS_Event_var &event ACE_ENV_ARG_DECL)
+TAO_NS_Proxy::check_filters (const TAO_NS_Event_var &event
+ , TAO_NS_FilterAdmin& parent_filter_admin
+ , CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator
+ ACE_ENV_ARG_DECL)
{
// check if it passes the parent filter.
CORBA::Boolean parent_val =
- this->parent_->filter_admin ().match (event ACE_ENV_ARG_PARAMETER);
+ parent_filter_admin.match (event ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
CORBA::Boolean val = 0;
- if (this->parent_->filter_operator () == CosNotifyChannelAdmin::AND_OP)
+ if (filter_operator == CosNotifyChannelAdmin::AND_OP)
{
val = parent_val && this->filter_admin_.match (event ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (0);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy.h b/TAO/orbsvcs/orbsvcs/Notify/Proxy.h
index 6fb58b71f10..27f8e3ea518 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Proxy.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Proxy.h
@@ -19,7 +19,7 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "Object_T.h"
+#include "Object.h"
#include "EventTypeSeq.h"
#include "FilterAdmin.h"
#include "Admin.h"
@@ -33,22 +33,31 @@ class TAO_NS_Peer;
* @brief Base class proxy for all proxys in NS.
*
*/
-class TAO_Notify_Export TAO_NS_Proxy : public virtual TAO_NS_Object_T <TAO_NS_Proxy, TAO_NS_Admin>
+class TAO_Notify_Export TAO_NS_Proxy : public virtual TAO_NS_Object
{
friend class TAO_NS_Peer;
public:
+ typedef CosNotifyChannelAdmin::ProxyIDSeq SEQ;
+ typedef CosNotifyChannelAdmin::ProxyIDSeq_var SEQ_VAR;
+
/// Constuctor
TAO_NS_Proxy (void);
/// Destructor
~TAO_NS_Proxy ();
+ /// Init
+ void init (TAO_NS_Admin *admin ACE_ENV_ARG_DECL);
+
/// Obtain the Proxy's subscribed types.
void subscribed_types (TAO_NS_EventTypeSeq& subscribed_types ACE_ENV_ARG_DECL);
/// Check if this event passes the admin and proxy filters.
- CORBA::Boolean check_filters (const TAO_NS_Event_var &event ACE_ENV_ARG_DECL);
+ CORBA::Boolean check_filters (const TAO_NS_Event_var &event
+ , TAO_NS_FilterAdmin& parent_filter_admin
+ , CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator
+ ACE_ENV_ARG_DECL);
/// Inform this proxy that the following types are being advertised.
void types_changed (const TAO_NS_EventTypeSeq& added, const TAO_NS_EventTypeSeq& removed ACE_ENV_ARG_DECL);
@@ -78,7 +87,6 @@ public:
virtual void qos_changed (const TAO_NS_QoSProperties& qos_properties);
protected:
- typedef TAO_NS_Object_T <TAO_NS_Proxy, TAO_NS_Admin> inherited;
/// Filter Administration
TAO_NS_FilterAdmin filter_admin_;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp
index cd7bfab096a..aa2a58f83fd 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.cpp
@@ -14,21 +14,21 @@ ACE_RCSID(RT_Notify, TAO_NS_ProxyConsumer, "$Id$")
#include "AdminProperties.h"
#include "Property.h"
#include "Proxy.h"
-#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
#include "Event_Manager.h"
#include "Method_Request_Lookup.h"
#include "Worker_Task.h"
+#include "Properties.h"
+#include "SupplierAdmin.h"
TAO_NS_ProxyConsumer::TAO_NS_ProxyConsumer (void)
- :supplier_ (0)
+ : supplier_admin_ (0)
+ , supplier_ (0)
{
}
TAO_NS_ProxyConsumer::~TAO_NS_ProxyConsumer ()
{
+ this->supplier_admin_->_decr_refcnt ();
}
TAO_NS_Peer*
@@ -38,6 +38,22 @@ TAO_NS_ProxyConsumer::peer (void)
}
void
+TAO_NS_ProxyConsumer::init (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_ARG_DECL)
+{
+ TAO_NS_Proxy::init (supplier_admin ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->supplier_admin_ = supplier_admin;
+
+ this->supplier_admin_->_incr_refcnt ();
+
+ const CosNotification::QoSProperties &default_ps_qos =
+ TAO_NS_PROPERTIES::instance ()->default_proxy_consumer_qos_properties ();
+
+ this->set_qos (default_ps_qos ACE_ENV_ARG_PARAMETER);
+}
+
+void
TAO_NS_ProxyConsumer::connect (TAO_NS_Supplier *supplier ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
@@ -64,7 +80,7 @@ TAO_NS_ProxyConsumer::connect (TAO_NS_Supplier *supplier ACE_ENV_ARG_DECL)
supplier_ = supplier;
- this->parent_->subscribed_types (this->subscribed_types_ ACE_ENV_ARG_PARAMETER); // get the parents subscribed types.
+ this->supplier_admin_->subscribed_types (this->subscribed_types_ ACE_ENV_ARG_PARAMETER); // get the parents subscribed types.
ACE_CHECK;
}
@@ -101,7 +117,7 @@ TAO_NS_ProxyConsumer::disconnect (ACE_ENV_SINGLE_ARG_DECL)
int
TAO_NS_ProxyConsumer::shutdown (ACE_ENV_SINGLE_ARG_DECL)
{
- if (this->inherited::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ if (this->TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
return 1;
ACE_CHECK_RETURN (1);
@@ -116,6 +132,18 @@ TAO_NS_ProxyConsumer::shutdown (ACE_ENV_SINGLE_ARG_DECL)
}
void
+TAO_NS_ProxyConsumer::destroy (ACE_ENV_SINGLE_ARG_DECL)
+{
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
+
+ this->supplier_admin_->remove (this ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+}
+
+void
TAO_NS_ProxyConsumer::push (TAO_NS_Event_var &event)
{
TAO_NS_Method_Request_Lookup request (event, this, this->event_manager_->consumer_map ());
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.h
index 976e82d8b99..807bcf152f3 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.h
@@ -21,10 +21,12 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "Event.h"
-#include "Supplier.h"
#include "Proxy.h"
#include "orbsvcs/CosEventChannelAdminC.h"
+class TAO_NS_SupplierAdmin;
+class TAO_NS_Supplier;
+
/**
* @class TAO_NS_ProxyConsumer
*
@@ -40,6 +42,9 @@ public:
/// Destructor
~TAO_NS_ProxyConsumer ();
+ /// Init
+ void init (TAO_NS_SupplierAdmin* supplier_admin ACE_ENV_ARG_DECL);
+
/// Connect
void connect (TAO_NS_Supplier* supplier ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
@@ -53,6 +58,9 @@ public:
/// Shutdown (TAO_NS_Container_T method)
virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
+ /// Destroy this object.
+ virtual void destroy (ACE_ENV_SINGLE_ARG_DECL);
+
/// Start event propagation.
virtual void push (TAO_NS_Event_var &event);
@@ -65,7 +73,14 @@ public:
/// Return 1 if connected
int is_connected (void);
+ /// The SA parent.
+ TAO_NS_SupplierAdmin* supplier_admin (void);
+
protected:
+ ///= Data Members.
+ /// The SA parent.
+ TAO_NS_SupplierAdmin* supplier_admin_;
+
/// The Supplier that we're connect to.
TAO_NS_Supplier* supplier_;
};
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.inl b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.inl
index b8dc2b1357f..ea4b07f8474 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer.inl
@@ -11,3 +11,9 @@ TAO_NS_ProxyConsumer::supplier (void)
{
return this->supplier_;
}
+
+ACE_INLINE TAO_NS_SupplierAdmin*
+TAO_NS_ProxyConsumer::supplier_admin (void)
+{
+ return this->supplier_admin_;
+}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp
index 90a166ec142..7c75dd56b49 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ProxyConsumer_T.cpp
@@ -4,6 +4,7 @@
#define TAO_NS_PROXYCONSUMER_T_CPP
#include "ProxyConsumer_T.h"
+#include "SupplierAdmin.h"
#if ! defined (__ACE_INLINE__)
#include "ProxyConsumer_T.inl"
@@ -39,7 +40,7 @@ TAO_NS_ProxyConsumer_T<SERVANT_TYPE>::MyAdmin (ACE_ENV_SINGLE_ARG_DECL)
{
CosNotifyChannelAdmin::SupplierAdmin_var ret;
- CORBA::Object_var object = this->parent_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
+ CORBA::Object_var object = this->supplier_admin_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (ret._retn ());
ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.cpp
index cb24b194385..a663ed3b7ed 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.cpp
@@ -12,27 +12,37 @@ ACE_RCSID(RT_Notify, TAO_NS_ProxySupplier, "$Id$")
#include "Event_Manager.h"
#include "AdminProperties.h"
#include "Consumer.h"
-#include "Proxy.h"
-#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
#include "Method_Request_Dispatch.h"
#include "Worker_Task.h"
#include "Buffering_Strategy.h"
+#include "Properties.h"
+#include "ConsumerAdmin.h"
TAO_NS_ProxySupplier::TAO_NS_ProxySupplier (void)
- :consumer_ (0)
+ : consumer_admin_ (0)
+ , consumer_ (0)
{
}
TAO_NS_ProxySupplier::~TAO_NS_ProxySupplier ()
{
+ this->consumer_admin_->_decr_refcnt ();
}
void
-TAO_NS_ProxySupplier::init_ps (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+TAO_NS_ProxySupplier::init (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL)
{
+ TAO_NS_Proxy::init (consumer_admin ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->consumer_admin_ = consumer_admin;
+
+ this->consumer_admin_->_incr_refcnt ();
+
+ const CosNotification::QoSProperties &default_ps_qos =
+ TAO_NS_PROPERTIES::instance ()->default_proxy_supplier_qos_properties ();
+
+ this->set_qos (default_ps_qos ACE_ENV_ARG_PARAMETER);
}
TAO_NS_Peer*
@@ -68,7 +78,7 @@ TAO_NS_ProxySupplier::connect (TAO_NS_Consumer *consumer ACE_ENV_ARG_DECL)
consumer_ = consumer;
- this->parent_->subscribed_types (this->subscribed_types_ ACE_ENV_ARG_PARAMETER); // get the parents subscribed types.
+ this->consumer_admin_->subscribed_types (this->subscribed_types_ ACE_ENV_ARG_PARAMETER); // get the parents subscribed types.
ACE_CHECK;
}
@@ -104,7 +114,7 @@ TAO_NS_ProxySupplier::disconnect (ACE_ENV_SINGLE_ARG_DECL)
int
TAO_NS_ProxySupplier::shutdown (ACE_ENV_SINGLE_ARG_DECL)
{
- if (this->inherited::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ if (this->TAO_NS_Object::shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
return 1;
ACE_CHECK_RETURN (1);
@@ -119,6 +129,18 @@ TAO_NS_ProxySupplier::shutdown (ACE_ENV_SINGLE_ARG_DECL)
}
void
+TAO_NS_ProxySupplier::destroy (ACE_ENV_SINGLE_ARG_DECL)
+{
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
+
+ this->consumer_admin_->remove (this ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+}
+
+void
TAO_NS_ProxySupplier::push (const TAO_NS_Event_var &event)
{
TAO_NS_Method_Request_Dispatch request (event, this);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.h b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.h
index 102ce63077d..dfb5bb590b9 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.h
@@ -24,6 +24,7 @@
#include "orbsvcs/CosEventChannelAdminC.h"
class TAO_NS_Consumer;
+class TAO_NS_ConsumerAdmin;
/**
* @class TAO_NS_ProxySupplier
@@ -42,8 +43,8 @@ public:
/// Destructor
virtual ~TAO_NS_ProxySupplier ();
- /// Init method.
- virtual void init_ps (ACE_ENV_SINGLE_ARG_DECL);
+ /// Init
+ virtual void init (TAO_NS_ConsumerAdmin* consumer_admin ACE_ENV_ARG_DECL);
/// Connect
void connect (TAO_NS_Consumer* consumer ACE_ENV_ARG_DECL)
@@ -63,6 +64,9 @@ public:
/// Override TAO_NS_Container_T::shutdown method
virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL);
+ /// Destroy this object.
+ virtual void destroy (ACE_ENV_SINGLE_ARG_DECL);
+
/// Override, TAO_NS_Proxy::qos_changed to apply MaxEventssPerConsumer QoS.
virtual void qos_changed (const TAO_NS_QoSProperties& qos_properties);
@@ -72,10 +76,18 @@ public:
/// Access the Consumer
TAO_NS_Consumer* consumer (void);
-protected:
/// Return 1 if connected
int is_connected (void);
+ /// The CA parent.
+ TAO_NS_ConsumerAdmin* consumer_admin (void);
+
+protected:
+
+ ///= Data Members.
+ /// The CA parent.
+ TAO_NS_ConsumerAdmin* consumer_admin_;
+
/// The Consumer that we're connect to.
TAO_NS_Consumer* consumer_;
};
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.inl b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.inl
index e2aae869cd7..3c7852c9858 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier.inl
@@ -11,3 +11,9 @@ TAO_NS_ProxySupplier::consumer (void)
{
return this->consumer_;
}
+
+ACE_INLINE TAO_NS_ConsumerAdmin*
+TAO_NS_ProxySupplier::consumer_admin (void)
+{
+ return this->consumer_admin_;
+}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp
index 7db52521e8b..04db7d0d999 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ProxySupplier_T.cpp
@@ -19,6 +19,7 @@ ACE_RCSID(Notify, TAO_NS_ProxySupplier_T, "$id$")
#include "Method_Request_Dispatch_No_Filtering.h"
#include "Worker_Task.h"
#include "Event_Manager.h"
+#include "ConsumerAdmin.h"
template <class SERVANT_TYPE>
TAO_NS_ProxySupplier_T<SERVANT_TYPE>::TAO_NS_ProxySupplier_T (void)
@@ -171,7 +172,7 @@ TAO_NS_ProxySupplier_T<SERVANT_TYPE>::MyAdmin (ACE_ENV_SINGLE_ARG_DECL)
{
CosNotifyChannelAdmin::ConsumerAdmin_var ret;
- CORBA::Object_var object = this->parent_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
+ CORBA::Object_var object = this->consumer_admin_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK_RETURN (ret._retn ());
ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.cpp
index 06291c3cf14..dd340c2b592 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Proxy_T.cpp
@@ -55,6 +55,10 @@ TAO_NS_Proxy_T<SERVANT_TYPE>::get_qos (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
return this->TAO_NS_Object::get_qos (ACE_ENV_SINGLE_ARG_PARAMETER);
}
@@ -65,6 +69,9 @@ TAO_NS_Proxy_T<SERVANT_TYPE>::set_qos (const CosNotification::QoSProperties & qo
CosNotification::UnsupportedQoS
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+
this->TAO_NS_Object::set_qos (qos ACE_ENV_ARG_PARAMETER);
}
@@ -88,6 +95,10 @@ TAO_NS_Proxy_T<SERVANT_TYPE>::add_filter (CosNotifyFilter::Filter_ptr new_filter
CORBA::SystemException
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
return this->filter_admin_.add_filter (new_filter ACE_ENV_ARG_PARAMETER);
}
@@ -101,6 +112,9 @@ TAO_NS_Proxy_T<SERVANT_TYPE>::remove_filter (
CosNotifyFilter::FilterNotFound
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+
this->filter_admin_.remove_filter (filter ACE_ENV_ARG_PARAMETER);
}
@@ -111,6 +125,10 @@ TAO_NS_Proxy_T<SERVANT_TYPE>::get_filter (CosNotifyFilter::FilterID filter ACE_E
CosNotifyFilter::FilterNotFound
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (CosNotifyFilter::Filter::_nil ());
+
return this->filter_admin_.get_filter (filter ACE_ENV_ARG_PARAMETER);
}
@@ -120,6 +138,10 @@ TAO_NS_Proxy_T<SERVANT_TYPE>::get_all_filters (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+ ACE_CHECK_RETURN (0);
+
return this->filter_admin_.get_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER);
}
@@ -129,6 +151,9 @@ TAO_NS_Proxy_T<SERVANT_TYPE>::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
+ ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
+ CORBA::INTERNAL ());
+
this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER);
}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.cpp b/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.cpp
index 2a8672aa1f6..ca2e0da3330 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.cpp
@@ -75,8 +75,8 @@ TAO_NS_QoSProperties::init (const CosNotification::PropertySeq& prop_seq, CosNot
return err_index == -1 ? 0 : 1;
}
-void
-TAO_NS_QoSProperties::transfer (TAO_NS_QoSProperties& qos_properties)
+int
+TAO_NS_QoSProperties::copy (TAO_NS_QoSProperties& qos_properties)
{
qos_properties.priority_ = this->priority_;
qos_properties.timeout_ = this->timeout_;
@@ -89,12 +89,24 @@ TAO_NS_QoSProperties::transfer (TAO_NS_QoSProperties& qos_properties)
for (; iter.next (entry); iter.advance ())
{
- qos_properties.property_map_.bind (entry->ext_id_, entry->int_id_);
+ if (qos_properties.property_map_.rebind (entry->ext_id_, entry->int_id_) == -1)
+ return -1;
}
+ return 0;
+}
+
+int
+TAO_NS_QoSProperties::transfer (TAO_NS_QoSProperties& qos_properties)
+{
+ if (this->copy (qos_properties) == -1)
+ return -1;
+
// unbind the properties that we don't want to transfer.
qos_properties.property_map_.unbind (NotifyExt::ThreadPool);
qos_properties.property_map_.unbind (NotifyExt::ThreadPoolLanes);
+
+ return 0;
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.h b/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.h
index 08911f86ef4..0b65e375865 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/QoSProperties.h
@@ -42,8 +42,11 @@ public:
/// Return 0 on success, 1 if unsupported properties were detected and -1 on error.
int init (const CosNotification::PropertySeq& prop_seq, CosNotification::PropertyErrorSeq& err_seq);
- /// Populate <qos_properties> with properties that can be transfered.
- void transfer (TAO_NS_QoSProperties& qos_properties);
+ /// Populate <qos_properties> with all properties from this object. Returns -1 on error.
+ int copy (TAO_NS_QoSProperties& qos_properties);
+
+ /// Populate <qos_properties> with properties that can be transfered.Returns -1 on error.
+ int transfer (TAO_NS_QoSProperties& qos_properties);
///= Accessors
/// ThreadPool
diff --git a/TAO/orbsvcs/orbsvcs/Notify/README b/TAO/orbsvcs/orbsvcs/Notify/README
index 05684cec2d4..1f7797efc39 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/README
+++ b/TAO/orbsvcs/orbsvcs/Notify/README
@@ -1,4 +1,4 @@
-$Id$
+README,v 1.5 2000/12/07 05:56:27 pradeep Exp
README for the Notification Service
-----------------------------------
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.cpp b/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.cpp
index a665780ed0c..705ebf295f9 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.cpp
@@ -13,7 +13,6 @@ ACE_RCSID(RT_Notify, TAO_NS_Reactive_Task, "$Id$")
TAO_NS_Reactive_Task::TAO_NS_Reactive_Task (void)
:timer_ (0)
{
- this->destroy_callback (this); // The <release> method is called to release memory.
}
TAO_NS_Reactive_Task::~TAO_NS_Reactive_Task ()
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.h b/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.h
index 76e3491692a..98d77a6c39c 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Reactive_Task.h
@@ -21,7 +21,6 @@
#include "Worker_Task.h"
#include "AdminProperties.h"
-#include "Destroy_Callback.h"
class TAO_NS_Timer_Reactor;
@@ -31,7 +30,7 @@ class TAO_NS_Timer_Reactor;
* @brief A reactive worker task. Simply executes the command in the caller's context.
*
*/
-class TAO_Notify_Export TAO_NS_Reactive_Task : public TAO_NS_Worker_Task, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_Reactive_Task : public TAO_NS_Worker_Task
{
public:
/// Constuctor
@@ -40,7 +39,7 @@ public:
/// Destructor
~TAO_NS_Reactive_Task ();
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
/// Init the reactive task.
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.cpp b/TAO/orbsvcs/orbsvcs/Notify/Refcountable.cpp
index a703e29f2a4..a5c277a611d 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Refcountable.cpp
@@ -1,8 +1,6 @@
// $Id$
#include "Refcountable.h"
-#include "Destroy_Callback.h"
-
#include "tao/debug.h"
#include "ace/Log_Msg.h"
@@ -47,14 +45,7 @@ TAO_NS_Refcountable::_decr_refcnt (void)
return this->refcount_;
}
- if (this->destroy_callback_ != 0)
- this->destroy_callback_->release ();
+ this->release ();
return 0;
}
-
-void
-TAO_NS_Refcountable::destroy_callback (TAO_NS_Destroy_Callback* destroy_callback)
-{
- destroy_callback_ = destroy_callback;
-}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.h b/TAO/orbsvcs/orbsvcs/Notify/Refcountable.h
index aa30f82be58..77a45cd16fa 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Refcountable.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Refcountable.h
@@ -23,12 +23,10 @@
#include "tao/orbconf.h"
#include "tao/corbafwd.h"
-class TAO_NS_Destroy_Callback;
-
/**
* @class TAO_NS_Refcountable
*
- * @brief Thread-safe refounting, calls a Destroy_Callback when refcount falls to 0.
+ * @brief Thread-safe refounting, calls the <release> method when refcount falls to 0.
*
*/
class TAO_Notify_Export TAO_NS_Refcountable
@@ -38,24 +36,21 @@ public:
TAO_NS_Refcountable (void);
/// Destructor
- ~TAO_NS_Refcountable ();
-
- /// Set the destroy callback.
- void destroy_callback (TAO_NS_Destroy_Callback* destroy_callback);
+ virtual ~TAO_NS_Refcountable ();
/// This method sigantures deliberately match the RefCounting methods required for ESF Proxy
CORBA::ULong _incr_refcnt (void);
CORBA::ULong _decr_refcnt (void);
+ /// The release method is called when the refcount reaches 0.
+ virtual void release (void) = 0;
+
protected:
/// The reference count.
CORBA::ULong refcount_;
/// The mutex to serialize access to state variables.
TAO_SYNCH_MUTEX lock_;
-
- /// The callback when refcount falls to 0.
- TAO_NS_Destroy_Callback* destroy_callback_;
};
/***********************************************************************/
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp
new file mode 100644
index 00000000000..d6a9d03f7f2
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp
@@ -0,0 +1,37 @@
+// $Id$
+
+#ifndef TAO_NS_SEQ_WORKER_T_CPP
+#define TAO_NS_SEQ_WORKER_T_CPP
+
+#include "Seq_Worker_T.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "Seq_Worker_T.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Notify, TAO_NS_Seq_Worker_T, "$id$")
+
+template <class T>
+TAO_NS_Seq_Worker_T<T>::TAO_NS_Seq_Worker_T (void)
+{
+}
+
+template<class TYPE> TAO_NS_Seq_Worker_T<TYPE>::SEQ*
+TAO_NS_Seq_Worker_T<TYPE>::create (CONTAINER &container ACE_ENV_ARG_DECL)
+{
+ SEQ* tmp;
+ ACE_NEW_THROW_EX (tmp, //this->seq_,
+ SEQ (),
+ CORBA::INTERNAL ());
+
+ this->seq_ = tmp;
+
+ container.collection ()->for_each (this ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK_RETURN (0);
+
+ return this->seq_._retn ();
+
+}
+
+#endif /* TAO_NS_SEQ_WORKER_T_CPP */
+
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.h b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.h
new file mode 100644
index 00000000000..c4cb69c2f6d
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.h
@@ -0,0 +1,68 @@
+/* -*- C++ -*- */
+/**
+ * @file Seq_Worker_T.h
+ *
+ * $Id$
+ *
+ * @author Pradeep Gore <pradeep@oomworks.com>
+ *
+ *
+ */
+
+#ifndef TAO_NS_SEQ_WORKER_T_H
+#define TAO_NS_SEQ_WORKER_T_H
+#include "ace/pre.h"
+
+#include "notify_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
+#include "orbsvcs/ESF/ESF_Worker.h"
+#include "Container_T.h"
+
+/**
+ * @class TAO_NS_Seq_Worker_T
+ *
+ * @brief Helper to construct a sequence of IDS in a collections.
+ *
+ */
+template <class TYPE>
+class TAO_Notify_Export TAO_NS_Seq_Worker_T : public TAO_ESF_Worker<TYPE>
+{
+ typedef TAO_NS_Container_T<TYPE> CONTAINER;
+ typedef TAO_ESF_Proxy_Collection<TYPE> COLLECTION;
+ typedef typename TYPE::SEQ SEQ;
+ typedef typename TYPE::SEQ_VAR SEQ_VAR;
+
+public:
+ /// Constructor
+ TAO_NS_Seq_Worker_T (void);
+
+ /// create a SEQ
+ SEQ* create (CONTAINER& container ACE_ENV_ARG_DECL);
+
+protected:
+ ///= TAO_ESF_Worker method
+ void work (TYPE* object ACE_ENV_ARG_DECL);
+
+ /// The result
+ SEQ_VAR seq_;
+};
+
+#if defined (__ACE_INLINE__)
+#include "Seq_Worker_T.inl"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Seq_Worker_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Seq_Worker_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include "ace/post.h"
+#endif /* TAO_NS_SEQ_WORKER_T_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl
new file mode 100644
index 00000000000..97489c1811e
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Seq_Worker_T.inl
@@ -0,0 +1,9 @@
+// $Id$
+
+template<class TYPE> ACE_INLINE void
+TAO_NS_Seq_Worker_T<TYPE>::work (TYPE* type ACE_ENV_ARG_DECL_NOT_USED)
+{
+ this->seq_->length (this->seq_->length () + 1);
+
+ this->seq_[this->seq_->length () - 1] = type->id ();
+}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp
index 9101583601c..c1b7ea4bdfa 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.cpp
@@ -8,10 +8,8 @@
ACE_RCSID(Notify, TAO_NS_SequenceProxyPushConsumer, "$id$")
-#include "ace/Refcounted_Auto_Ptr.h"
#include "tao/debug.h"
#include "SequencePushSupplier.h"
-#include "../Admin.h"
#include "../AdminProperties.h"
#include "../Structured/StructuredEvent.h"
@@ -40,7 +38,10 @@ TAO_NS_SequenceProxyPushConsumer::destroy (ACE_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG, "In TAO_NS_SequenceProxyPushConsumer::destroy \n"));
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
}
CosNotifyChannelAdmin::ProxyType
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h
index 647ce01b185..068d39067ac 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyChannelAdminS.h"
#include "../ProxyConsumer_T.h"
-#include "../Destroy_Callback.h"
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
@@ -36,7 +35,7 @@
* @brief
*
*/
-class TAO_Notify_Export TAO_NS_SequenceProxyPushConsumer : public virtual TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_SequenceProxyPushConsumer : public virtual TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer>
{
friend class TAO_NS_Builder;
public:
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp
index f92380f1260..8660198e8f2 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.cpp
@@ -10,12 +10,6 @@ ACE_RCSID(Notify, TAO_NS_SequenceProxyPushSupplier, "$id$")
#include "tao/debug.h"
#include "SequencePushConsumer.h"
-#include "../Proxy.h"
-#include "../Admin.h"
-#include "../EventChannel.h"
-#include "../EventChannelFactory.h"
-#include "../Notify_Service.h"
-
TAO_NS_SequenceProxyPushSupplier::TAO_NS_SequenceProxyPushSupplier (void)
{
@@ -31,7 +25,10 @@ TAO_NS_SequenceProxyPushSupplier::destroy (ACE_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG, "In TAO_NS_SequenceProxyPushConsumer::destroy \n"));
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
}
void
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h
index 722aecf4b8f..49ee0d951c8 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h
@@ -41,7 +41,7 @@ TAO_NS_ProxySupplier_T<POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>;
*
*
*/
-class TAO_Notify_Export TAO_NS_SequenceProxyPushSupplier : public virtual TAO_NS_ProxySupplier_T <POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_SequenceProxyPushSupplier : public virtual TAO_NS_ProxySupplier_T <POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier>
{
friend class TAO_NS_Builder;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h
index b83256362da..e981c1b9fae 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Sequence/SequencePushSupplier.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyCommC.h"
#include "../Supplier.h"
-#include "../Destroy_Callback.h"
class TAO_NS_ProxyConsumer;
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Service.h b/TAO/orbsvcs/orbsvcs/Notify/Service.h
index 93c2c63b50e..a6848386f76 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Service.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Service.h
@@ -1,4 +1,4 @@
-// -*- C++ -*-
+/* -*- C++ -*- */
/**
* @file Service.h
*
@@ -6,6 +6,7 @@
*
* @author Pradeep Gore <pradeep@oomworks.com>
*
+ *
*/
#ifndef TAO_NS_SERVICE_H
@@ -18,20 +19,20 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ace/Service_Config.h"
#include "ace/Service_Object.h"
+#include "ace/Service_Config.h"
#include "orbsvcs/CosNotifyChannelAdminS.h"
#include "tao/PortableServer/PortableServer.h"
/**
- * @class TAO_NS_Service
+ * @class TAO_Notify_Service
*
* @brief Abstract ACE_Service_Object interface that is a
* factory for creating a Notify EventChannelFactory.
* Note that a Service creates only 1 Factory object.
*
*/
-class TAO_Notify_Export TAO_NS_Service : public ACE_Service_Object
+class TAO_Notify_Export TAO_Notify_Service : public ACE_Service_Object
{
public:
/// Define Service_Object method otherwise SunCC compiler complains.
@@ -47,7 +48,12 @@ public:
};
#define TAO_NOTIFY_DEF_EMO_FACTORY_NAME "Notify_Default_Event_Manager_Objects_Factory"
-#define TAO_NS_COS_NOTIFICATION_SERVICE_NAME "CosNotify_Service"
+
+#define TAO_NS_NOTIFICATION_SERVICE_NAME "TAO_Notify_Service"
+
+#define TAO_NS_COS_NOTIFICATION_SERVICE_NAME "TAO_CosNotify_Service"
+
+#define TAO_NS_RT_NOTIFICATION_SERVICE_NAME "TAO_RT_Notify_Service"
#include "ace/post.h"
#endif /* TAO_NS_SERVICE_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp
index e3f177563e3..858f2f518ef 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.cpp
@@ -14,11 +14,6 @@ ACE_RCSID(RT_Notify, TAO_NS_StructuredProxyPushConsumer, "$Id$")
#include "StructuredPushSupplier.h"
#include "StructuredEvent.h"
#include "../AdminProperties.h"
-#include "../Proxy.h"
-#include "../Admin.h"
-#include "../EventChannel.h"
-#include "../EventChannelFactory.h"
-#include "../Notify_Service.h"
TAO_NS_StructuredProxyPushConsumer::TAO_NS_StructuredProxyPushConsumer (void)
{
@@ -26,7 +21,6 @@ TAO_NS_StructuredProxyPushConsumer::TAO_NS_StructuredProxyPushConsumer (void)
TAO_NS_StructuredProxyPushConsumer::~TAO_NS_StructuredProxyPushConsumer ()
{
-
}
void
@@ -45,7 +39,10 @@ TAO_NS_StructuredProxyPushConsumer::destroy (ACE_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG, "In TAO_NS_StructuredProxyPushConsumer::destroy \n"));
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
}
CosNotifyChannelAdmin::ProxyType
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h
index 1ece4fba9ab..70ddb535673 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyChannelAdminS.h"
#include "../ProxyConsumer_T.h"
-#include "../Destroy_Callback.h"
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
@@ -36,7 +35,7 @@
* @brief CosNotifyChannelAdmin::StructuredProxyPushConsumer implementation.
*
*/
-class TAO_Notify_Export TAO_NS_StructuredProxyPushConsumer : public virtual TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_StructuredProxyPushConsumer : public virtual TAO_NS_ProxyConsumer_T <POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer>
{
friend class TAO_NS_Builder;
@@ -47,7 +46,7 @@ public:
/// Destructor
~TAO_NS_StructuredProxyPushConsumer ();
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
/// Destroy this object.
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp
index 6bec03def5d..4072b24f681 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.cpp
@@ -5,12 +5,6 @@
#include "tao/debug.h"
#include "StructuredPushConsumer.h"
-#include "../Event_Manager.h"
-#include "../Proxy.h"
-#include "../Admin.h"
-#include "../EventChannel.h"
-#include "../EventChannelFactory.h"
-#include "../Notify_Service.h"
#if ! defined (__ACE_INLINE__)
#include "StructuredProxyPushSupplier.inl"
@@ -32,7 +26,10 @@ TAO_NS_StructuredProxyPushSupplier::destroy (ACE_ENV_SINGLE_ARG_DECL)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG, "In TAO_NS_StructuredProxyPushConsumer::destroy \n"));
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
}
void
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h
index c650e451deb..922122dc849 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h
@@ -42,7 +42,7 @@ TAO_NS_ProxySupplier_T<POA_Event_Forwarder::StructuredProxyPushSupplier>;
*
*
*/
-class TAO_Notify_Export TAO_NS_StructuredProxyPushSupplier : public virtual TAO_NS_ProxySupplier_T <POA_Event_Forwarder::StructuredProxyPushSupplier>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_StructuredProxyPushSupplier : public virtual TAO_NS_ProxySupplier_T <POA_Event_Forwarder::StructuredProxyPushSupplier>
{
friend class TAO_NS_Builder;
@@ -56,7 +56,7 @@ public:
/// Destroy this object.
virtual void destroy (ACE_ENV_SINGLE_ARG_DECL);
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
/// = Servant methods
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h
index 64cff330f84..28fb81439da 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushConsumer.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyCommC.h"
#include "../Consumer.h"
-#include "../Destroy_Callback.h"
class TAO_NS_ProxySupplier;
@@ -43,7 +42,7 @@ public:
/// Destructor
~TAO_NS_StructuredPushConsumer ();
- /// TAO_NS_Destroy_Callback methods.
+ /// Release
virtual void release (void);
/// Push <event> to this consumer.
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h
index 4308e4a99d3..6c9456befb7 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Structured/StructuredPushSupplier.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyCommC.h"
#include "../Supplier.h"
-#include "../Destroy_Callback.h"
class TAO_NS_ProxyConsumer;
@@ -43,7 +42,7 @@ public:
/// Init
void init (CosNotifyComm::StructuredPushSupplier_ptr push_supplier ACE_ENV_ARG_DECL);
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
protected:
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Supplier.cpp b/TAO/orbsvcs/orbsvcs/Notify/Supplier.cpp
index 28d6883d524..f03f91207e2 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Supplier.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Supplier.cpp
@@ -10,10 +10,6 @@ ACE_RCSID(RT_Notify, TAO_NS_Supplier, "$Id$")
#include "ProxyConsumer.h"
#include "Proxy.h"
-#include "Admin.h"
-#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
TAO_NS_Supplier::TAO_NS_Supplier (TAO_NS_ProxyConsumer* proxy)
:proxy_ (proxy)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp
index 84ff5247e87..e42e33138a1 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.cpp
@@ -11,15 +11,21 @@ ACE_RCSID(RT_Notify, TAO_NS_SupplierAdmin, "$Id$")
#include "orbsvcs/ESF/ESF_Proxy_Collection.h"
#include "Builder.h"
#include "Proxy.h"
-#include "Admin.h"
#include "EventChannel.h"
-#include "EventChannelFactory.h"
-#include "Notify_Service.h"
#include "Subscription_Change_Worker.h"
+#include "Find_Worker_T.h"
+#include "Seq_Worker_T.h"
#include "Properties.h"
+typedef TAO_NS_Find_Worker_T<TAO_NS_Proxy
+ , CosNotifyChannelAdmin::ProxyConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer_ptr
+ , CosNotifyChannelAdmin::ProxyNotFound>
+TAO_NS_ProxyConsumer_Find_Worker;
+
+typedef TAO_NS_Seq_Worker_T<TAO_NS_Proxy> TAO_NS_Proxy_Seq_Worker;
+
TAO_NS_SupplierAdmin::TAO_NS_SupplierAdmin (void)
-:TAO_NS_Admin (TAO_NS_Admin::SUPPLIER_ADMIN)
{
}
@@ -27,10 +33,16 @@ TAO_NS_SupplierAdmin::~TAO_NS_SupplierAdmin ()
{
}
-PortableServer::Servant
-TAO_NS_SupplierAdmin::servant (void)
+void
+TAO_NS_SupplierAdmin::init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL)
{
- return this;
+ TAO_NS_Admin::init (ec ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ const CosNotification::QoSProperties &default_sa_qos =
+ TAO_NS_PROPERTIES::instance ()->default_supplier_admin_qos_properties ();
+
+ this->set_qos (default_sa_qos ACE_ENV_ARG_PARAMETER);
}
void
@@ -58,7 +70,13 @@ TAO_NS_SupplierAdmin::destroy (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- this->inherited::destroy (this ACE_ENV_ARG_PARAMETER);
+ if (this->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER) == 1)
+ return;
+
+ ACE_CHECK;
+
+ this->ec_->remove (this ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
}
void
@@ -81,16 +99,28 @@ TAO_NS_SupplierAdmin::get_qos (ACE_ENV_SINGLE_ARG_DECL)
}
CosNotifyChannelAdmin::ProxyConsumer_ptr
-TAO_NS_SupplierAdmin::obtain_notification_push_consumer (CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id ACE_ENV_ARG_DECL)
+TAO_NS_SupplierAdmin::obtain_notification_push_consumer (CosNotifyChannelAdmin::ClientType ctype
+ , CosNotifyChannelAdmin::ProxyID_out proxy_id
+ ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException
, CosNotifyChannelAdmin::AdminLimitExceeded
))
{
- return TAO_NS_PROPERTIES::instance()->builder ()->build_notification_push_consumer (this,
- ctype,
- proxy_id ACE_ENV_ARG_PARAMETER);
+ return TAO_NS_PROPERTIES::instance()->builder()->build_proxy (this
+ , ctype
+ , proxy_id
+ ACE_ENV_ARG_PARAMETER);
+}
+
+CosEventChannelAdmin::ProxyPushConsumer_ptr
+TAO_NS_SupplierAdmin::obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((
+ CORBA::SystemException
+ ))
+{
+ return TAO_NS_PROPERTIES::instance()->builder()->build_proxy (this ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::AdminID
@@ -108,15 +138,7 @@ TAO_NS_SupplierAdmin::MyChannel (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- CORBA::Object_var object = this->parent_->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannel::_nil ());
-
- CosNotifyChannelAdmin::EventChannel_var ec_ret;
-
- ec_ret = CosNotifyChannelAdmin::EventChannel::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::EventChannel::_nil ());
-
- return ec_ret._retn ();
+ return this->ec_->_this (ACE_ENV_SINGLE_ARG_PARAMETER);
}
::CosNotifyChannelAdmin::InterFilterGroupOperator
@@ -134,25 +156,9 @@ TAO_NS_SupplierAdmin::push_consumers (ACE_ENV_SINGLE_ARG_DECL)
CORBA::SystemException
))
{
- CosNotifyChannelAdmin::ProxyIDSeq* seq_ptr;
-
- ACE_NEW_THROW_EX (seq_ptr,
- CosNotifyChannelAdmin::ProxyIDSeq (),
- CORBA::NO_MEMORY ());
-
- CosNotifyChannelAdmin::ProxyIDSeq_var seq (seq_ptr);
-
- seq->length (this->proxy_id_list_.size ());
+ TAO_NS_Proxy_Seq_Worker seq_worker;
- TAO_NS_Object_Id_Seq::CONST_ITERATOR iter (this->proxy_id_list_);
-
- TAO_NS_Object_Id* object_id;
-
- CORBA::ULong i = 0;
- for (iter.first (); iter.next (object_id); iter.advance (), ++i)
- seq[i] = *object_id;
-
- return seq._retn ();
+ return seq_worker.create (*this->proxy_container_ ACE_ENV_ARG_PARAMETER);
}
CosNotifyChannelAdmin::ProxyConsumer_ptr
@@ -162,23 +168,9 @@ TAO_NS_SupplierAdmin::get_proxy_consumer (CosNotifyChannelAdmin::ProxyID proxy_i
, CosNotifyChannelAdmin::ProxyNotFound
))
{
- TAO_NS_Object* ns_object = this->find (proxy_id ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxyConsumer::_nil ());
-
- if (ns_object != 0)
- {
- CORBA::Object_var object = ns_object->ref (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxyConsumer::_nil ());
-
- CosNotifyChannelAdmin::ProxyConsumer_var pc_ret;
-
- pc_ret = CosNotifyChannelAdmin::ProxyConsumer::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CosNotifyChannelAdmin::ProxyConsumer::_nil ());
+ TAO_NS_ProxyConsumer_Find_Worker find_worker;
- return pc_ret._retn ();
- }
- else
- ACE_THROW_RETURN (CosNotifyChannelAdmin::ProxyNotFound (), CosNotifyChannelAdmin::ProxyConsumer::_nil ());
+ return find_worker.resolve (proxy_id, *this->proxy_container_ ACE_ENV_ARG_PARAMETER);
}
void
@@ -201,11 +193,11 @@ TAO_NS_SupplierAdmin::offer_change (const CosNotification::EventTypeSeq & added,
ACE_CHECK;
this->subscribed_types_.init (seq_added, seq_removed);
- }
- TAO_NS_Subscription_Change_Worker worker (added, removed);
+ TAO_NS_Subscription_Change_Worker worker (added, removed);
- this->collection_->for_each (&worker ACE_ENV_ARG_PARAMETER);
+ this->proxy_container_->collection ()->for_each (&worker ACE_ENV_ARG_PARAMETER);
+ }
}
CosNotifyFilter::FilterID
@@ -255,15 +247,6 @@ TAO_NS_SupplierAdmin::remove_all_filters (ACE_ENV_SINGLE_ARG_DECL)
this->filter_admin_.remove_all_filters (ACE_ENV_SINGLE_ARG_PARAMETER);
}
-CosEventChannelAdmin::ProxyPushConsumer_ptr
-TAO_NS_SupplierAdmin::obtain_push_consumer (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- return TAO_NS_PROPERTIES::instance()->builder ()->build_push_consumer (this ACE_ENV_ARG_PARAMETER);
-}
-
/************** UNIMPLEMENTED METHODS ***************/
CosEventChannelAdmin::ProxyPullConsumer_ptr
@@ -308,3 +291,22 @@ TAO_NS_SupplierAdmin::obtain_notification_pull_consumer (CosNotifyChannelAdmin::
{
ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), CosNotifyChannelAdmin::ProxyConsumer::_nil ());
}
+
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+
+template class TAO_NS_Find_Worker_T<TAO_NS_Proxy
+ , CosNotifyChannelAdmin::ProxyConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer_ptr
+ , CosNotifyChannelAdmin::ProxyNotFound>;
+template class TAO_NS_Seq_Worker_T<TAO_NS_Proxy>;
+
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+
+#pragma instantiate TAO_NS_Find_Worker_T<TAO_NS_Proxy
+ , CosNotifyChannelAdmin::ProxyConsumer
+ , CosNotifyChannelAdmin::ProxyConsumer_ptr
+ , CosNotifyChannelAdmin::ProxyNotFound>
+#pragma instantiate TAO_NS_Seq_Worker_T<TAO_NS_Proxy>
+
+#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.h b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.h
index 76e27a6ff51..248c4335d6c 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/SupplierAdmin.h
@@ -21,7 +21,6 @@
#include "orbsvcs/CosNotifyChannelAdminS.h"
#include "Admin.h"
-#include "Destroy_Callback.h"
#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
@@ -36,9 +35,9 @@
* @brief Implementation of CosNotifyChannelAdmin::SupplierAdmin
*
*/
-class TAO_Notify_Export TAO_NS_SupplierAdmin : public virtual POA_CosNotifyChannelAdmin::SupplierAdmin, public virtual TAO_NS_Admin, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_SupplierAdmin : public virtual POA_CosNotifyChannelAdmin::SupplierAdmin
+ , public virtual TAO_NS_Admin
{
- friend class TAO_NS_Builder;
public:
/// Constuctor
TAO_NS_SupplierAdmin (void);
@@ -46,14 +45,14 @@ public:
/// Destructor
~TAO_NS_SupplierAdmin ();
- /// Return servant
- virtual PortableServer::Servant servant (void);
+ /// Init
+ void init (TAO_NS_EventChannel *ec ACE_ENV_ARG_DECL);
/// ServantBase refcount methods.
virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL);
virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL);
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
protected:
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Supplier_Map.h b/TAO/orbsvcs/orbsvcs/Notify/Supplier_Map.h
new file mode 100644
index 00000000000..9a1d8034548
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Notify/Supplier_Map.h
@@ -0,0 +1,35 @@
+/* -*- C++ -*- */
+/**
+ * @file Supplier_Map.h
+ *
+ * $Id$
+ *
+ * @author Pradeep Gore <pradeep@oomworks.com>
+ *
+ *
+ */
+
+#ifndef TAO_NS_SUPPLIER_MAP_H
+#define TAO_NS_SUPPLIER_MAP_H
+#include "ace/pre.h"
+
+#include "notify_export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Event_Map_T.h"
+#include "ProxyConsumer.h"
+
+/**
+ * @class TAO_NS_Supplier_Map
+ *
+ * @brief The Event Map for Suppliers.
+ *
+ */
+
+typedef TAO_NS_Event_Map_T<TAO_NS_ProxyConsumer, TAO_SYNCH_RW_MUTEX> TAO_NS_Supplier_Map;
+
+#include "ace/post.h"
+#endif /* TAO_NS_SUPPLIER_MAP_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp b/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp
index effcf218611..5829dd3348e 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp
@@ -15,7 +15,6 @@ ACE_RCSID(RT_Notify, TAO_NS_ThreadPool_Task, "$Id$")
TAO_NS_ThreadPool_Task::TAO_NS_ThreadPool_Task (void)
: buffering_strategy_ (0), shutdown_ (0), timer_ (0)
{
- this->destroy_callback (this); // The <release> method is called to release memory.
}
TAO_NS_ThreadPool_Task::~TAO_NS_ThreadPool_Task ()
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.h b/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.h
index a742fe9d591..88c6b33462f 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/ThreadPool_Task.h
@@ -24,7 +24,6 @@
#include "ace/Reactor.h"
#include "AdminProperties.h"
#include "Worker_Task.h"
-#include "Destroy_Callback.h"
class TAO_NS_Buffering_Strategy;
class TAO_NS_Timer_Queue;
@@ -35,7 +34,7 @@ class TAO_NS_Timer_Queue;
* @brief Implements a Thread Pool Worker Task.
*
*/
-class TAO_Notify_Export TAO_NS_ThreadPool_Task : public TAO_NS_Worker_Task, ACE_Task<ACE_NULL_SYNCH>, public TAO_NS_Destroy_Callback
+class TAO_Notify_Export TAO_NS_ThreadPool_Task : public TAO_NS_Worker_Task, ACE_Task<ACE_NULL_SYNCH>
{
friend class TAO_NS_Method_Request_Shutdown;
@@ -51,7 +50,7 @@ public:
virtual int close (u_long flags);
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
/// Activate the threadpool
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.cpp b/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.cpp
index b7d4bbcd16e..aa80ab73163 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.cpp
@@ -8,10 +8,8 @@
ACE_RCSID(Notify, TAO_NS_Timer_Queue, "$id$")
-
TAO_NS_Timer_Queue::TAO_NS_Timer_Queue (void)
{
- this->destroy_callback (this);
}
TAO_NS_Timer_Queue::~TAO_NS_Timer_Queue ()
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.h b/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.h
index 3e8bbdb30f3..52dea61911b 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Timer_Queue.h
@@ -20,7 +20,6 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "Timer.h"
-#include "Destroy_Callback.h"
#include "ace/Timer_Queue.h"
#include "ace/Timer_Heap.h"
@@ -32,7 +31,6 @@
*
*/
class TAO_Notify_Export TAO_NS_Timer_Queue : public TAO_NS_Timer
- , public TAO_NS_Destroy_Callback
{
public:
/// Constuctor
@@ -41,7 +39,7 @@ public:
/// Destructor
virtual ~TAO_NS_Timer_Queue ();
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
/// Schedule a timer
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp b/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp
index 6e57a1cdd62..41709be90df 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.cpp
@@ -15,9 +15,7 @@ ACE_RCSID(Notify, TAO_NS_Timer_Reactor, "$id$")
TAO_NS_Timer_Reactor::TAO_NS_Timer_Reactor (void)
:reactor_ (0)
{
- this->destroy_callback (this);
-
- // Get the ORB
+ // Get the ORB
CORBA::ORB_var orb = TAO_NS_PROPERTIES::instance()->orb ();
this->reactor_ = orb->orb_core ()->reactor ();
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.h b/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.h
index eb0cb6e40d2..67953bb5576 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.h
+++ b/TAO/orbsvcs/orbsvcs/Notify/Timer_Reactor.h
@@ -20,7 +20,6 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "Timer.h"
-#include "Destroy_Callback.h"
class ACE_Reactor;
@@ -31,7 +30,6 @@ class ACE_Reactor;
*
*/
class TAO_Notify_Export TAO_NS_Timer_Reactor : public TAO_NS_Timer
- , public TAO_NS_Destroy_Callback
{
public:
/// Constuctor
@@ -40,7 +38,7 @@ public:
/// Destructor
virtual ~TAO_NS_Timer_Reactor ();
- /// TAO_NS_Destroy_Callback methods
+ /// Release
virtual void release (void);
/// Schedule a timer
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Types.cpp b/TAO/orbsvcs/orbsvcs/Notify/Types.cpp
deleted file mode 100644
index 6a1771ed426..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Types.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// $Id$
-
-#include "Types.h"
-#include "orbsvcs/NotifyExtC.h"
-#include "orbsvcs/ESF/ESF_RefCount_Guard.h"
-
-#if ! defined (__ACE_INLINE__)
-#include "Types.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(RT_Notify, TAO_NS_Types, "$Id$")
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class TAO_ESF_RefCount_Guard<CORBA::ULong>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate TAO_ESF_RefCount_Guard<CORBA::ULong>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Types.h b/TAO/orbsvcs/orbsvcs/Notify/Types.h
deleted file mode 100644
index 2981078e10a..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Types.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file Types.h
- *
- * $Id$
- *
- * @author Pradeep Gore <pradeep@oomworks.com>
- *
- *
- */
-
-#ifndef TAO_NS_TYPES_H
-#define TAO_NS_TYPES_H
-#include "ace/pre.h"
-
-#include "notify_export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "tao/corba.h"
-#include "tao/orbconf.h"
-
-/**
- * Forward declare templates
- */
-
-template <class PROXY> class TAO_ESF_Proxy_Collection;
-template <class PROXY, class ACE_LOCK> class TAO_NS_Event_Map_T;
-
-/**
- * Forward declare classes
- */
-class TAO_NS_Supplier;
-class TAO_NS_Consumer;
-class TAO_NS_Object;
-class TAO_NS_EventChannel;
-class TAO_NS_Admin;
-class TAO_NS_Proxy;
-class TAO_NS_Event;
-class TAO_NS_ProxySupplier;
-class TAO_NS_ProxyConsumer;
-class TAO_NS_Peer;
-class TAO_NS_EventType;
-class TAO_NS_EventTypeSeq;
-
-/**
- * Define common types
- */
-typedef ACE_Reverse_Lock<TAO_SYNCH_MUTEX> TAO_NS_Reverse_Lock;
-
-typedef CORBA::Long TAO_NS_Object_Id;
-
-typedef TAO_ESF_Proxy_Collection<TAO_NS_ProxyConsumer> TAO_NS_ProxyConsumer_Collection;
-typedef TAO_ESF_Proxy_Collection<TAO_NS_ProxySupplier> TAO_NS_ProxySupplier_Collection;
-
-typedef TAO_ESF_Proxy_Collection<TAO_NS_EventChannel> TAO_NS_EventChannel_Collection;
-typedef TAO_ESF_Proxy_Collection<TAO_NS_Admin> TAO_NS_Admin_Collection;
-typedef TAO_ESF_Proxy_Collection<TAO_NS_Proxy> TAO_NS_Proxy_Collection;
-
-typedef TAO_ESF_Proxy_Collection<TAO_NS_Consumer> TAO_NS_Consumer_Collection;
-typedef TAO_ESF_Proxy_Collection<TAO_NS_Supplier> TAO_NS_Supplier_Collection;
-typedef TAO_ESF_Proxy_Collection<TAO_NS_Peer> TAO_NS_Peer_Collection;
-
-typedef TAO_NS_Event_Map_T<TAO_NS_ProxySupplier, TAO_SYNCH_RW_MUTEX> TAO_NS_Consumer_Map;
-typedef TAO_NS_Event_Map_T<TAO_NS_ProxyConsumer, TAO_SYNCH_RW_MUTEX> TAO_NS_Supplier_Map;
-
-#include "ace/post.h"
-#endif /* TAO_NS_TYPES_H */
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Types.inl b/TAO/orbsvcs/orbsvcs/Notify/Types.inl
deleted file mode 100644
index cfa1da318d3..00000000000
--- a/TAO/orbsvcs/orbsvcs/Notify/Types.inl
+++ /dev/null
@@ -1 +0,0 @@
-// $Id$