00001
00002
00003
00004
00005
00006
00007
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
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
00044
00045
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
00056
00057
00058 virtual CosNotifyChannelAdmin::EventChannelFactory_ptr
00059 build_event_channel_factory (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL);
00060
00061
00062 virtual CosNotifyFilter::FilterFactory_ptr build_filter_factory (
00063 ACE_ENV_SINGLE_ARG_DECL
00064 );
00065
00066
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
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
00089
00090
00091
00092 virtual TAO_Notify_ConsumerAdmin *
00093 build_consumer_admin (TAO_Notify_EventChannel* ec
00094 , const CosNotifyChannelAdmin::AdminID id
00095 ACE_ENV_ARG_DECL);
00096
00097
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
00105
00106
00107
00108 virtual TAO_Notify_SupplierAdmin *
00109 build_supplier_admin (TAO_Notify_EventChannel * ec
00110 , const CosNotifyChannelAdmin::AdminID id
00111 ACE_ENV_ARG_DECL);
00112
00113
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
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
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
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
00144 virtual CosEventChannelAdmin::ProxyPushSupplier_ptr
00145 build_proxy (TAO_Notify_ConsumerAdmin* ca ACE_ENV_ARG_DECL);
00146
00147
00148 virtual CosEventChannelAdmin::ProxyPushConsumer_ptr
00149 build_proxy (TAO_Notify_SupplierAdmin* sa ACE_ENV_ARG_DECL);
00150
00151
00152 virtual void apply_reactive_concurrency (
00153 TAO_Notify_Object& object ACE_ENV_ARG_DECL
00154 );
00155
00156
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
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