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
00060 , const char* factory_name = 0);
00061
00062
00063 virtual CosNotifyFilter::FilterFactory_ptr build_filter_factory (
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 , const char* ec_name = 0);
00073
00074
00075 virtual TAO_Notify_EventChannel *
00076 build_event_channel (TAO_Notify_EventChannelFactory* ecf
00077 , const CosNotifyChannelAdmin::ChannelID id
00078 , const char* ec_name = 0);
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
00087
00088
00089
00090
00091 virtual TAO_Notify_ConsumerAdmin *
00092 build_consumer_admin (TAO_Notify_EventChannel* ec
00093 , const CosNotifyChannelAdmin::AdminID id
00094 );
00095
00096
00097 virtual CosNotifyChannelAdmin::SupplierAdmin_ptr
00098 build_supplier_admin (TAO_Notify_EventChannel * ec
00099 , CosNotifyChannelAdmin::InterFilterGroupOperator op
00100 , CosNotifyChannelAdmin::AdminID_out id);
00101
00102
00103
00104
00105
00106 virtual TAO_Notify_SupplierAdmin *
00107 build_supplier_admin (TAO_Notify_EventChannel * ec
00108 , const CosNotifyChannelAdmin::AdminID id
00109 );
00110
00111
00112 virtual CosNotifyChannelAdmin::ProxyConsumer_ptr
00113 build_proxy (TAO_Notify_SupplierAdmin* sa
00114 , CosNotifyChannelAdmin::ClientType ctype
00115 , CosNotifyChannelAdmin::ProxyID_out proxy_id
00116 , const CosNotification::QoSProperties & initial_qos);
00117
00118
00119 virtual TAO_Notify_ProxyConsumer *
00120 build_proxy (TAO_Notify_SupplierAdmin* sa
00121 , CosNotifyChannelAdmin::ClientType ctype
00122 , const CosNotifyChannelAdmin::ProxyID proxy_id);
00123
00124
00125 virtual CosNotifyChannelAdmin::ProxySupplier_ptr
00126 build_proxy (TAO_Notify_ConsumerAdmin* ca
00127 , CosNotifyChannelAdmin::ClientType ctype
00128 , CosNotifyChannelAdmin::ProxyID_out proxy_id
00129 , const CosNotification::QoSProperties & initial_qos);
00130
00131
00132 virtual TAO_Notify_ProxySupplier *
00133 build_proxy (TAO_Notify_ConsumerAdmin* ca
00134 , CosNotifyChannelAdmin::ClientType ctype
00135 , const CosNotifyChannelAdmin::ProxyID proxy_id);
00136
00137
00138 virtual CosEventChannelAdmin::ProxyPushSupplier_ptr
00139 build_proxy (TAO_Notify_ConsumerAdmin* ca);
00140
00141
00142 virtual CosEventChannelAdmin::ProxyPushConsumer_ptr
00143 build_proxy (TAO_Notify_SupplierAdmin* sa);
00144
00145
00146 virtual void apply_reactive_concurrency (
00147 TAO_Notify_Object& object
00148 );
00149
00150
00151 virtual void apply_thread_pool_concurrency (
00152 TAO_Notify_Object& object,
00153 const NotifyExt::ThreadPoolParams& tp_params
00154 );
00155
00156
00157 virtual void apply_lane_concurrency (
00158 TAO_Notify_Object& object,
00159 const NotifyExt::ThreadPoolLanesParams& tpl_params
00160 );
00161 };
00162
00163 TAO_END_VERSIONED_NAMESPACE_DECL
00164
00165 #include "ace/post.h"
00166
00167 #endif