00001 /* -*- C++ -*- */ 00002 /** 00003 * @file Factory.h 00004 * 00005 * $Id: Factory.h 79084 2007-07-30 13:13:45Z elliott_c $ 00006 * 00007 * @author Pradeep Gore <pradeep@oomworks.com> 00008 * 00009 * 00010 */ 00011 00012 #ifndef TAO_Notify_FACTORY_H 00013 #define TAO_Notify_FACTORY_H 00014 00015 #include /**/ "ace/pre.h" 00016 00017 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00018 # pragma once 00019 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00020 00021 #include "tao/Versioned_Namespace.h" 00022 #include "ace/CORBA_macros.h" 00023 #include "ace/Service_Object.h" 00024 00025 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00026 class ACE_Lock; 00027 ACE_END_VERSIONED_NAMESPACE_DECL 00028 00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00030 00031 class TAO_Notify_Object; 00032 class TAO_Notify_EventChannelFactory; 00033 class TAO_Notify_EventChannel; 00034 class TAO_Notify_SupplierAdmin; 00035 class TAO_Notify_ConsumerAdmin; 00036 class TAO_Notify_ProxyPushConsumer; 00037 class TAO_Notify_CosEC_ProxyPushSupplier; 00038 class TAO_Notify_CosEC_ProxyPushConsumer; 00039 class TAO_Notify_ProxyPushSupplier; 00040 class TAO_Notify_StructuredProxyPushConsumer; 00041 class TAO_Notify_StructuredProxyPushSupplier; 00042 class TAO_Notify_SequenceProxyPushConsumer; 00043 class TAO_Notify_SequenceProxyPushSupplier; 00044 class TAO_Notify_ProxyConsumer; 00045 class TAO_Notify_ProxySupplier; 00046 class TAO_Notify_ConsumerAdmin; 00047 class TAO_Notify_SupplierAdmin; 00048 class TAO_Notify_Proxy; 00049 class TAO_Notify_Consumer; 00050 class TAO_Notify_Supplier; 00051 class TAO_Notify_Peer; 00052 00053 namespace CORBA 00054 { 00055 class Environment; 00056 } 00057 00058 template <class PROXY> class TAO_ESF_Proxy_Collection; 00059 00060 typedef TAO_ESF_Proxy_Collection<TAO_Notify_ProxyConsumer> TAO_Notify_ProxyConsumer_Collection; 00061 typedef TAO_ESF_Proxy_Collection<TAO_Notify_ProxySupplier> TAO_Notify_ProxySupplier_Collection; 00062 00063 typedef TAO_ESF_Proxy_Collection<TAO_Notify_EventChannel> TAO_Notify_EventChannel_Collection; 00064 typedef TAO_ESF_Proxy_Collection<TAO_Notify_ConsumerAdmin> TAO_Notify_ConsumerAdmin_Collection; 00065 typedef TAO_ESF_Proxy_Collection<TAO_Notify_SupplierAdmin> TAO_Notify_SupplierAdmin_Collection; 00066 typedef TAO_ESF_Proxy_Collection<TAO_Notify_Proxy> TAO_Notify_Proxy_Collection; 00067 00068 /** 00069 * @class TAO_Notify_Factory 00070 * 00071 * @brief Factory interface for creating Notify Objects. 00072 * 00073 */ 00074 class /*TAO_Notify_Serv_Export*/ TAO_Notify_Factory : public ACE_Service_Object 00075 { 00076 public: 00077 /// Create ProxySupplier Collection 00078 virtual void create (TAO_Notify_ProxySupplier_Collection*& collection) = 0; 00079 00080 /// Create ProxyConsumer Collection 00081 virtual void create (TAO_Notify_ProxyConsumer_Collection*& collection) = 0; 00082 00083 /// Create EventChannel Collection 00084 virtual void create (TAO_Notify_EventChannel_Collection*& collection) = 0; 00085 00086 /// Create ConsumerAdmin Collection 00087 virtual void create (TAO_Notify_ConsumerAdmin_Collection*& collection) = 0; 00088 00089 /// Create SupplierAdmin Collection 00090 virtual void create (TAO_Notify_SupplierAdmin_Collection*& collection) = 0; 00091 00092 /// Create Proxy Collection 00093 virtual void create (TAO_Notify_Proxy_Collection*& collection) = 0; 00094 00095 /// Create EventChannelFactory 00096 virtual void create (TAO_Notify_EventChannelFactory*& channel_factory, 00097 const char* factory_name) = 0; 00098 00099 /// Create EventChannel 00100 virtual void create (TAO_Notify_EventChannel*& channel, 00101 const char* ec_name) = 0; 00102 00103 /// Create SupplierAdmin 00104 virtual void create (TAO_Notify_SupplierAdmin*& admin) = 0; 00105 00106 /// Create ConsumerAdmin 00107 virtual void create (TAO_Notify_ConsumerAdmin*& admin) = 0; 00108 00109 /// Create ProxyPushConsumer 00110 virtual void create (TAO_Notify_ProxyPushConsumer*& proxy) = 0; 00111 00112 /// Create ProxyPushSupplier 00113 virtual void create (TAO_Notify_ProxyPushSupplier*& proxy) = 0; 00114 00115 /// Create CosEC_ProxyPushConsumer 00116 virtual void create (TAO_Notify_CosEC_ProxyPushConsumer*& proxy) = 0; 00117 00118 /// Create CosEC_ProxyPushSupplier 00119 virtual void create (TAO_Notify_CosEC_ProxyPushSupplier*& proxy) = 0; 00120 00121 /// Create StructuredProxyPushConsumer 00122 virtual void create (TAO_Notify_StructuredProxyPushConsumer*& proxy) = 0; 00123 00124 /// Create StructuredProxyPushSupplier 00125 virtual void create (TAO_Notify_StructuredProxyPushSupplier*& proxy) = 0; 00126 00127 /// Create SequenceProxyPushConsumer 00128 virtual void create (TAO_Notify_SequenceProxyPushConsumer*& proxy) = 0; 00129 00130 /// Create SequenceProxyPushSupplier 00131 virtual void create (TAO_Notify_SequenceProxyPushSupplier*& proxy) = 0; 00132 }; 00133 00134 TAO_END_VERSIONED_NAMESPACE_DECL 00135 00136 #include /**/ "ace/post.h" 00137 00138 #endif /* TAO_Notify_FACTORY_H */