diff options
author | pradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-02-27 14:17:59 +0000 |
---|---|---|
committer | pradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-02-27 14:17:59 +0000 |
commit | 3b1973e66d29b9a317e836e49ff40bddb89aaf31 (patch) | |
tree | 30aa3c1bf9298eb8060936b6f4aaeb5c1f904c65 | |
parent | 733e2e952b6edba9082e8d34c8b058cfd16fb336 (diff) | |
download | ATCD-3b1973e66d29b9a317e836e49ff40bddb89aaf31.tar.gz |
ChangeLogTag: Thu Feb 27 09:09:44 2003 Pradeep Gore <pradeep@oomworks.com>
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$ |