00001 /* -*- C++ -*- */ 00002 /** 00003 * @file Factory.h 00004 * 00005 * Factory.h,v 1.10 2005/11/27 12:04:11 ossama Exp 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 ACE_ENV_ARG_DECL) = 0; 00079 00080 /// Create ProxyConsumer Collection 00081 virtual void create (TAO_Notify_ProxyConsumer_Collection*& collection ACE_ENV_ARG_DECL) = 0; 00082 00083 /// Create EventChannel Collection 00084 virtual void create (TAO_Notify_EventChannel_Collection*& collection ACE_ENV_ARG_DECL) = 0; 00085 00086 /// Create ConsumerAdmin Collection 00087 virtual void create (TAO_Notify_ConsumerAdmin_Collection*& collection ACE_ENV_ARG_DECL) = 0; 00088 00089 /// Create SupplierAdmin Collection 00090 virtual void create (TAO_Notify_SupplierAdmin_Collection*& collection ACE_ENV_ARG_DECL) = 0; 00091 00092 /// Create Proxy Collection 00093 virtual void create (TAO_Notify_Proxy_Collection*& collection ACE_ENV_ARG_DECL) = 0; 00094 00095 /// Create EventChannelFactory 00096 virtual void create (TAO_Notify_EventChannelFactory*& channel_factory ACE_ENV_ARG_DECL) = 0; 00097 00098 /// Create EventChannel 00099 virtual void create (TAO_Notify_EventChannel*& channel ACE_ENV_ARG_DECL) = 0; 00100 00101 /// Create SupplierAdmin 00102 virtual void create (TAO_Notify_SupplierAdmin*& admin ACE_ENV_ARG_DECL) = 0; 00103 00104 /// Create ConsumerAdmin 00105 virtual void create (TAO_Notify_ConsumerAdmin*& admin ACE_ENV_ARG_DECL) = 0; 00106 00107 /// Create ProxyPushConsumer 00108 virtual void create (TAO_Notify_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0; 00109 00110 /// Create ProxyPushSupplier 00111 virtual void create (TAO_Notify_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0; 00112 00113 /// Create CosEC_ProxyPushConsumer 00114 virtual void create (TAO_Notify_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0; 00115 00116 /// Create CosEC_ProxyPushSupplier 00117 virtual void create (TAO_Notify_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0; 00118 00119 /// Create StructuredProxyPushConsumer 00120 virtual void create (TAO_Notify_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0; 00121 00122 /// Create StructuredProxyPushSupplier 00123 virtual void create (TAO_Notify_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0; 00124 00125 /// Create SequenceProxyPushConsumer 00126 virtual void create (TAO_Notify_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL) = 0; 00127 00128 /// Create SequenceProxyPushSupplier 00129 virtual void create (TAO_Notify_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL) = 0; 00130 }; 00131 00132 TAO_END_VERSIONED_NAMESPACE_DECL 00133 00134 #include /**/ "ace/post.h" 00135 00136 #endif /* TAO_Notify_FACTORY_H */