Builder.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 /**
00003  *  @file Builder.h
00004  *
00005  *  Builder.h,v 1.16 2006/03/14 06:14:34 jtc Exp
00006  *
00007  *  @author Pradeep Gore <pradeep@oomworks.com>
00008  *
00009  *
00010  */
00011 
00012 #ifndef TAO_Notify_BUILDER_H
00013 #define TAO_Notify_BUILDER_H
00014 
00015 #include /**/ "ace/pre.h"
00016 
00017 #include "orbsvcs/Notify/notify_serv_export.h"
00018 
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif /* ACE_LACKS_PRAGMA_ONCE */
00022 
00023 #include "orbsvcs/CosNotifyChannelAdminC.h"
00024 #include "orbsvcs/NotifyExtC.h"
00025 
00026 #include "orbsvcs/Notify/AdminProperties.h"
00027 #include "orbsvcs/Notify/Topology_Object.h"
00028 
00029 #include "tao/PortableServer/PortableServer.h"
00030 
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032 
00033 class TAO_Notify_EventChannelFactory;
00034 class TAO_Notify_EventChannel;
00035 class TAO_Notify_SupplierAdmin;
00036 class TAO_Notify_ConsumerAdmin;
00037 class TAO_Notify_ProxyConsumer;
00038 class TAO_Notify_ProxySupplier;
00039 class TAO_Notify_FilterFactory;
00040 class TAO_Notify_Object;
00041 
00042 /**
00043  * @class TAO_Notify_Builder
00044  *
00045  * @brief Helper class to create and activate CORBA objects.
00046  *
00047  */
00048 class TAO_Notify_Serv_Export TAO_Notify_Builder
00049 {
00050 public:
00051   TAO_Notify_Builder (void);
00052 
00053   virtual ~TAO_Notify_Builder ();
00054 
00055   ///= Factory Methods
00056 
00057   /// Build EventChannel Factory.
00058   virtual CosNotifyChannelAdmin::EventChannelFactory_ptr
00059   build_event_channel_factory (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL);
00060 
00061   /// Build the Filter Factory.
00062   virtual CosNotifyFilter::FilterFactory_ptr build_filter_factory (
00063       ACE_ENV_SINGLE_ARG_DECL
00064     );
00065 
00066   /// Build EventChannel.
00067   virtual CosNotifyChannelAdmin::EventChannel_ptr
00068   build_event_channel (TAO_Notify_EventChannelFactory* ecf
00069                        , const CosNotification::QoSProperties & initial_qos
00070                        , const CosNotification::AdminProperties & initial_admin
00071                        , CosNotifyChannelAdmin::ChannelID_out id
00072                        ACE_ENV_ARG_DECL);
00073 
00074 
00075   virtual TAO_Notify_EventChannel *
00076   build_event_channel (TAO_Notify_EventChannelFactory* ecf
00077                        , const CosNotifyChannelAdmin::ChannelID id
00078                        ACE_ENV_ARG_DECL);
00079 
00080 
00081   /// Build ConsumerAdmin
00082   virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr
00083   build_consumer_admin (TAO_Notify_EventChannel* ec
00084                         , CosNotifyChannelAdmin::InterFilterGroupOperator op
00085                         , CosNotifyChannelAdmin::AdminID_out id
00086                         ACE_ENV_ARG_DECL);
00087 
00088   /// Build ConsumerAdmin during topology restore
00089   /// TODO: this returns a reference to the actual type
00090   /// to accomodate loadable builder/factory there should
00091   /// be an appropriate base class for it to return.
00092   virtual TAO_Notify_ConsumerAdmin *
00093   build_consumer_admin (TAO_Notify_EventChannel* ec
00094                         , const CosNotifyChannelAdmin::AdminID id //CORBA::Long id          // note: an in parameter!
00095                         ACE_ENV_ARG_DECL);
00096 
00097   /// Build SupplierAdmin
00098   virtual CosNotifyChannelAdmin::SupplierAdmin_ptr
00099   build_supplier_admin (TAO_Notify_EventChannel * ec
00100                         , CosNotifyChannelAdmin::InterFilterGroupOperator op
00101                         , CosNotifyChannelAdmin::AdminID_out id
00102                         ACE_ENV_ARG_DECL);
00103 
00104   /// Build ConsumerAdmin during topology restore
00105   /// TODO: this returns a reference to the actual type
00106   /// to accomodate loadable builder/factory there should
00107   /// be an appropriate base class for it to return.
00108   virtual TAO_Notify_SupplierAdmin *
00109   build_supplier_admin (TAO_Notify_EventChannel * ec
00110                         , const CosNotifyChannelAdmin::AdminID id //CORBA::Long id          // note: an in parameter!
00111                         ACE_ENV_ARG_DECL);
00112 
00113   /// Build ProxyConsumer
00114   virtual CosNotifyChannelAdmin::ProxyConsumer_ptr
00115   build_proxy (TAO_Notify_SupplierAdmin* sa
00116                , CosNotifyChannelAdmin::ClientType ctype
00117                , CosNotifyChannelAdmin::ProxyID_out proxy_id
00118                , const CosNotification::QoSProperties & initial_qos
00119                ACE_ENV_ARG_DECL);
00120 
00121   /// Reload ProxyConsumer
00122   virtual TAO_Notify_ProxyConsumer *
00123   build_proxy (TAO_Notify_SupplierAdmin* sa
00124                , CosNotifyChannelAdmin::ClientType ctype
00125                , const CosNotifyChannelAdmin::ProxyID proxy_id
00126                ACE_ENV_ARG_DECL);
00127 
00128   /// Build ProxySupplier.
00129   virtual CosNotifyChannelAdmin::ProxySupplier_ptr
00130   build_proxy (TAO_Notify_ConsumerAdmin* ca
00131                , CosNotifyChannelAdmin::ClientType ctype
00132                , CosNotifyChannelAdmin::ProxyID_out proxy_id
00133                , const CosNotification::QoSProperties & initial_qos
00134                ACE_ENV_ARG_DECL);
00135 
00136   /// Reload ProxySupplier.
00137   virtual TAO_Notify_ProxySupplier *
00138   build_proxy (TAO_Notify_ConsumerAdmin* ca
00139                , CosNotifyChannelAdmin::ClientType ctype
00140                , const CosNotifyChannelAdmin::ProxyID proxy_id
00141                ACE_ENV_ARG_DECL);
00142 
00143   /// Build CosEC style ProxySupplier.
00144   virtual CosEventChannelAdmin::ProxyPushSupplier_ptr
00145   build_proxy (TAO_Notify_ConsumerAdmin* ca ACE_ENV_ARG_DECL);
00146 
00147   /// Build CosEC style ProxyConsumer.
00148   virtual CosEventChannelAdmin::ProxyPushConsumer_ptr
00149   build_proxy (TAO_Notify_SupplierAdmin* sa ACE_ENV_ARG_DECL);
00150 
00151   /// Apply Reactive concurrency.
00152   virtual void apply_reactive_concurrency (
00153       TAO_Notify_Object& object ACE_ENV_ARG_DECL
00154     );
00155 
00156   /// Apply Thread Pools.
00157   virtual void apply_thread_pool_concurrency (
00158       TAO_Notify_Object& object,
00159       const NotifyExt::ThreadPoolParams& tp_params
00160       ACE_ENV_ARG_DECL
00161     );
00162 
00163   /// Apply Thread Pools with Lanes.
00164   virtual void apply_lane_concurrency (
00165       TAO_Notify_Object& object,
00166       const NotifyExt::ThreadPoolLanesParams& tpl_params
00167       ACE_ENV_ARG_DECL
00168     );
00169 };
00170 
00171 TAO_END_VERSIONED_NAMESPACE_DECL
00172 
00173 #include /**/ "ace/post.h"
00174 
00175 #endif /* TAO_Notify_BUILDER_H */

Generated on Thu Nov 9 13:24:08 2006 for TAO_CosNotification by doxygen 1.3.6