00001
00002
00003 #include "orbsvcs/Notify/Default_Factory.h"
00004
00005 ACE_RCSID (Notify,
00006 TAO_Notify_Default_Factory,
00007 "Default_Factory.cpp,v 1.15 2006/03/15 21:29:09 jtc Exp")
00008
00009 #include "orbsvcs/Notify/EventChannelFactory.h"
00010 #include "orbsvcs/Notify/EventChannel.h"
00011 #include "orbsvcs/Notify/Admin.h"
00012 #include "orbsvcs/Notify/Proxy.h"
00013 #include "orbsvcs/Notify/SupplierAdmin.h"
00014 #include "orbsvcs/Notify/ConsumerAdmin.h"
00015 #include "orbsvcs/Notify/Structured/StructuredProxyPushConsumer.h"
00016 #include "orbsvcs/Notify/Structured/StructuredProxyPushSupplier.h"
00017 #include "orbsvcs/Notify/Any/ProxyPushConsumer.h"
00018 #include "orbsvcs/Notify/Any/ProxyPushSupplier.h"
00019 #include "orbsvcs/Notify/Any/CosEC_ProxyPushConsumer.h"
00020 #include "orbsvcs/Notify/Any/CosEC_ProxyPushSupplier.h"
00021 #include "orbsvcs/Notify/Sequence/SequenceProxyPushConsumer.h"
00022 #include "orbsvcs/Notify/Sequence/SequenceProxyPushSupplier.h"
00023 #include "orbsvcs/Notify/Supplier.h"
00024
00025 #include "orbsvcs/ESF/ESF_Proxy_List.h"
00026 #include "orbsvcs/ESF/ESF_Copy_On_Write.h"
00027
00028
00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00030
00031 template <class PROXY>
00032 class COW_Collection_Default_Factory
00033 {
00034 public:
00035 typedef ACE_TYPENAME TAO_ESF_Proxy_List<PROXY>::Iterator PROXY_ITER;
00036 typedef TAO_ESF_Copy_On_Write<PROXY, TAO_ESF_Proxy_List<PROXY>,PROXY_ITER, ACE_SYNCH> COLLECTION;
00037 typedef TAO_ESF_Proxy_Collection<PROXY> BASE_COLLECTION;
00038
00039 void create (BASE_COLLECTION* &collection ACE_ENV_ARG_DECL)
00040 {
00041 ACE_NEW_THROW_EX (collection,
00042 COLLECTION (),
00043 CORBA::INTERNAL ());
00044 }
00045 };
00046
00047 TAO_Notify_Default_Factory::TAO_Notify_Default_Factory (void)
00048 {
00049 }
00050
00051 TAO_Notify_Default_Factory::~TAO_Notify_Default_Factory ()
00052 {
00053 }
00054
00055 void
00056 TAO_Notify_Default_Factory::create (TAO_Notify_ProxySupplier_Collection* &collection ACE_ENV_ARG_DECL)
00057 {
00058 COW_Collection_Default_Factory<TAO_Notify_ProxySupplier> f;
00059 f.create (collection ACE_ENV_ARG_PARAMETER);
00060 }
00061
00062 void
00063 TAO_Notify_Default_Factory::create (TAO_Notify_ProxyConsumer_Collection* &collection ACE_ENV_ARG_DECL)
00064 {
00065 COW_Collection_Default_Factory<TAO_Notify_ProxyConsumer> f;
00066 f.create (collection ACE_ENV_ARG_PARAMETER);
00067 }
00068
00069 void
00070 TAO_Notify_Default_Factory::create (TAO_Notify_EventChannel_Collection* &collection ACE_ENV_ARG_DECL)
00071 {
00072 COW_Collection_Default_Factory<TAO_Notify_EventChannel> f;
00073 f.create (collection ACE_ENV_ARG_PARAMETER);
00074 }
00075
00076 void
00077 TAO_Notify_Default_Factory::create (TAO_Notify_ConsumerAdmin_Collection* &collection ACE_ENV_ARG_DECL)
00078 {
00079 COW_Collection_Default_Factory<TAO_Notify_ConsumerAdmin> f;
00080 f.create (collection ACE_ENV_ARG_PARAMETER);
00081 }
00082
00083 void
00084 TAO_Notify_Default_Factory::create (TAO_Notify_SupplierAdmin_Collection* &collection ACE_ENV_ARG_DECL)
00085 {
00086 COW_Collection_Default_Factory<TAO_Notify_SupplierAdmin> f;
00087 f.create (collection ACE_ENV_ARG_PARAMETER);
00088 }
00089
00090 void
00091 TAO_Notify_Default_Factory::create (TAO_Notify_Proxy_Collection* &collection ACE_ENV_ARG_DECL)
00092 {
00093 COW_Collection_Default_Factory<TAO_Notify_Proxy> f;
00094 f.create (collection ACE_ENV_ARG_PARAMETER);
00095 }
00096
00097 void
00098 TAO_Notify_Default_Factory::create (TAO_Notify_EventChannelFactory*& factory ACE_ENV_ARG_DECL)
00099 {
00100 ACE_NEW_THROW_EX (factory,
00101 TAO_Notify_EventChannelFactory (),
00102 CORBA::NO_MEMORY ());
00103 }
00104
00105 void
00106 TAO_Notify_Default_Factory::create (TAO_Notify_EventChannel*& channel ACE_ENV_ARG_DECL)
00107 {
00108 ACE_NEW_THROW_EX (channel,
00109 TAO_Notify_EventChannel (),
00110 CORBA::NO_MEMORY ());
00111 }
00112
00113
00114 void
00115 TAO_Notify_Default_Factory::create (TAO_Notify_SupplierAdmin*& admin ACE_ENV_ARG_DECL)
00116 {
00117 ACE_NEW_THROW_EX (admin,
00118 TAO_Notify_SupplierAdmin (),
00119 CORBA::NO_MEMORY ());
00120 }
00121
00122 void
00123 TAO_Notify_Default_Factory::create (TAO_Notify_ConsumerAdmin*& admin ACE_ENV_ARG_DECL)
00124 {
00125 ACE_NEW_THROW_EX (admin,
00126 TAO_Notify_ConsumerAdmin (),
00127 CORBA::NO_MEMORY ());
00128 }
00129
00130 void
00131 TAO_Notify_Default_Factory::create (TAO_Notify_StructuredProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
00132 {
00133 ACE_NEW_THROW_EX (proxy,
00134 TAO_Notify_StructuredProxyPushConsumer (),
00135 CORBA::NO_MEMORY ());
00136 }
00137
00138 void
00139 TAO_Notify_Default_Factory::create (TAO_Notify_StructuredProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
00140 {
00141 ACE_NEW_THROW_EX (proxy,
00142 TAO_Notify_StructuredProxyPushSupplier (),
00143 CORBA::NO_MEMORY ());
00144 }
00145
00146 void
00147 TAO_Notify_Default_Factory::create (TAO_Notify_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
00148 {
00149 ACE_NEW_THROW_EX (proxy,
00150 TAO_Notify_ProxyPushConsumer (),
00151 CORBA::NO_MEMORY ());
00152 }
00153
00154 void
00155 TAO_Notify_Default_Factory::create (TAO_Notify_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
00156 {
00157 ACE_NEW_THROW_EX (proxy,
00158 TAO_Notify_ProxyPushSupplier (),
00159 CORBA::NO_MEMORY ());
00160 }
00161
00162 void
00163 TAO_Notify_Default_Factory::create (TAO_Notify_CosEC_ProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
00164 {
00165 ACE_NEW_THROW_EX (proxy,
00166 TAO_Notify_CosEC_ProxyPushConsumer (),
00167 CORBA::NO_MEMORY ());
00168 }
00169
00170 void
00171 TAO_Notify_Default_Factory::create (TAO_Notify_CosEC_ProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
00172 {
00173 ACE_NEW_THROW_EX (proxy,
00174 TAO_Notify_CosEC_ProxyPushSupplier (),
00175 CORBA::NO_MEMORY ());
00176 }
00177
00178 void
00179 TAO_Notify_Default_Factory::create (TAO_Notify_SequenceProxyPushConsumer*& proxy ACE_ENV_ARG_DECL)
00180 {
00181 ACE_NEW_THROW_EX (proxy,
00182 TAO_Notify_SequenceProxyPushConsumer (),
00183 CORBA::NO_MEMORY ());
00184 }
00185
00186 void
00187 TAO_Notify_Default_Factory::create (TAO_Notify_SequenceProxyPushSupplier*& proxy ACE_ENV_ARG_DECL)
00188 {
00189 ACE_NEW_THROW_EX (proxy,
00190 TAO_Notify_SequenceProxyPushSupplier (),
00191 CORBA::NO_MEMORY ());
00192 }
00193
00194 TAO_END_VERSIONED_NAMESPACE_DECL
00195
00196 ACE_FACTORY_DEFINE (TAO_Notify_Serv, TAO_Notify_Default_Factory)
00197