#include <Builder.h>
Inheritance diagram for TAO_Notify_Builder:
Public Member Functions | |
TAO_Notify_Builder (void) | |
virtual | ~TAO_Notify_Builder () |
virtual CosNotifyChannelAdmin::EventChannelFactory_ptr | build_event_channel_factory (PortableServer::POA_ptr poa, const char *factory_name=0) |
= Factory Methods Build EventChannel Factory. | |
virtual CosNotifyFilter::FilterFactory_ptr | build_filter_factory () |
Build the Filter Factory. | |
virtual CosNotifyChannelAdmin::EventChannel_ptr | build_event_channel (TAO_Notify_EventChannelFactory *ecf, const CosNotification::QoSProperties &initial_qos, const CosNotification::AdminProperties &initial_admin, CosNotifyChannelAdmin::ChannelID_out id, const char *ec_name=0) |
Build EventChannel. | |
virtual TAO_Notify_EventChannel * | build_event_channel (TAO_Notify_EventChannelFactory *ecf, const CosNotifyChannelAdmin::ChannelID id, const char *ec_name=0) |
virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr | build_consumer_admin (TAO_Notify_EventChannel *ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id) |
Build ConsumerAdmin. | |
virtual TAO_Notify_ConsumerAdmin * | build_consumer_admin (TAO_Notify_EventChannel *ec, const CosNotifyChannelAdmin::AdminID id) |
virtual CosNotifyChannelAdmin::SupplierAdmin_ptr | build_supplier_admin (TAO_Notify_EventChannel *ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id) |
Build SupplierAdmin. | |
virtual TAO_Notify_SupplierAdmin * | build_supplier_admin (TAO_Notify_EventChannel *ec, const CosNotifyChannelAdmin::AdminID id) |
virtual CosNotifyChannelAdmin::ProxyConsumer_ptr | build_proxy (TAO_Notify_SupplierAdmin *sa, CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id, const CosNotification::QoSProperties &initial_qos) |
Build ProxyConsumer. | |
virtual TAO_Notify_ProxyConsumer * | build_proxy (TAO_Notify_SupplierAdmin *sa, CosNotifyChannelAdmin::ClientType ctype, const CosNotifyChannelAdmin::ProxyID proxy_id) |
Reload ProxyConsumer. | |
virtual CosNotifyChannelAdmin::ProxySupplier_ptr | build_proxy (TAO_Notify_ConsumerAdmin *ca, CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id, const CosNotification::QoSProperties &initial_qos) |
Build ProxySupplier. | |
virtual TAO_Notify_ProxySupplier * | build_proxy (TAO_Notify_ConsumerAdmin *ca, CosNotifyChannelAdmin::ClientType ctype, const CosNotifyChannelAdmin::ProxyID proxy_id) |
Reload ProxySupplier. | |
virtual CosEventChannelAdmin::ProxyPushSupplier_ptr | build_proxy (TAO_Notify_ConsumerAdmin *ca) |
Build CosEC style ProxySupplier. | |
virtual CosEventChannelAdmin::ProxyPushConsumer_ptr | build_proxy (TAO_Notify_SupplierAdmin *sa) |
Build CosEC style ProxyConsumer. | |
virtual void | apply_reactive_concurrency (TAO_Notify_Object &object) |
Apply Reactive concurrency. | |
virtual void | apply_thread_pool_concurrency (TAO_Notify_Object &object, const NotifyExt::ThreadPoolParams &tp_params) |
Apply Thread Pools. | |
virtual void | apply_lane_concurrency (TAO_Notify_Object &object, const NotifyExt::ThreadPoolLanesParams &tpl_params) |
Apply Thread Pools with Lanes. |
Definition at line 48 of file Builder.h.
|
Definition at line 158 of file Builder.cpp. References TAO_Notify_EventType::special().
00159 { 00160 // Init the static members. 00161 TAO_Notify_AnyEvent::event_type_ = TAO_Notify_EventType::special (); 00162 } |
|
Definition at line 164 of file Builder.cpp.
00165 { 00166 } |
|
Apply Thread Pools with Lanes.
Reimplemented in TAO_Notify_RT_Builder. Definition at line 527 of file Builder.cpp.
00528 { 00529 // No lane support 00530 throw CORBA::NO_IMPLEMENT (); 00531 } |
|
Apply Reactive concurrency.
Definition at line 499 of file Builder.cpp. References ACE_NEW_THROW_EX, TAO_Notify_Reactive_Task::init(), and TAO_Notify_Object::set_worker_task(). Referenced by TAO_Notify_Object::set_qos().
00500 { 00501 TAO_Notify_Reactive_Task* worker_task; 00502 00503 ACE_NEW_THROW_EX (worker_task, 00504 TAO_Notify_Reactive_Task (), 00505 CORBA::NO_MEMORY ()); 00506 00507 object.set_worker_task (worker_task); 00508 00509 worker_task->init (); 00510 } |
|
Apply Thread Pools.
Reimplemented in TAO_Notify_RT_Builder. Definition at line 513 of file Builder.cpp. References ACE_NEW_THROW_EX, TAO_Notify_Object::admin_properties_, TAO_Notify_ThreadPool_Task::init(), and TAO_Notify_Object::set_worker_task().
00514 { 00515 TAO_Notify_ThreadPool_Task* worker_task = 0; 00516 00517 ACE_NEW_THROW_EX (worker_task, 00518 TAO_Notify_ThreadPool_Task (), 00519 CORBA::NO_MEMORY ()); 00520 00521 object.set_worker_task (worker_task); 00522 00523 worker_task->init (tp_params, object.admin_properties_); 00524 } |
|
Build ConsumerAdmin during topology restore TODO: this returns a reference to the actual type to accomodate loadable builder/factory there should be an appropriate base class for it to return. |
|
Build ConsumerAdmin.
Definition at line 247 of file Builder.cpp. References TAO_Notify_Object::activate(), TAO_Notify_EventChannel::ca_container_, TAO_Notify_Factory::create(), TAO_Notify_Properties::factory(), TAO_Notify_Admin::filter_operator(), TAO_Notify_Object::id(), TAO_Notify_ConsumerAdmin::init(), and TAO_Notify_Properties::instance(). Referenced by TAO_Notify_EventChannel::load_child(), and TAO_Notify_EventChannel::new_for_consumers().
00251 { 00252 CosNotifyChannelAdmin::ConsumerAdmin_var ca_ret; 00253 00254 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00255 00256 TAO_Notify_ConsumerAdmin* ca = 0; 00257 factory->create (ca); 00258 00259 ca->init (ec); 00260 00261 ca->filter_operator (op); 00262 00263 CORBA::Object_var obj = ca->activate (ca); 00264 00265 id = ca->id (); 00266 00267 ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in()); 00268 00269 // insert admin in CA container. 00270 ec->ca_container_->insert (ca); 00271 00272 return ca_ret._retn (); 00273 } |
|
Definition at line 226 of file Builder.cpp. References TAO_Notify_Object::activate(), CosNotifyChannelAdmin::ChannelID, TAO_Notify_Factory::create(), TAO_Notify_EventChannelFactory::ec_container(), TAO_Notify_Properties::factory(), TAO_Notify_EventChannel::init(), and TAO_Notify_Properties::instance().
00230 { 00231 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00232 00233 TAO_Notify_EventChannel* ec = 0; 00234 factory->create (ec, ec_name); 00235 00236 ec->init (ecf); //, initial_qos, initial_admin 00237 00238 // insert ec in ec container. 00239 ecf->ec_container().insert (ec); 00240 00241 ec->activate (ec, id); 00242 00243 return ec; 00244 } |
|
Build EventChannel.
Definition at line 200 of file Builder.cpp. References TAO_Notify_Object::activate(), CosNotification::AdminProperties, TAO_Notify_Factory::create(), TAO_Notify_EventChannelFactory::ec_container(), TAO_Notify_Properties::factory(), TAO_Notify_Object::id(), TAO_Notify_EventChannel::init(), TAO_Notify_Properties::instance(), and CosNotification::QoSProperties. Referenced by TAO_Notify_EventChannelFactory::create_channel(), and TAO_Notify_EventChannelFactory::load_child().
00206 { 00207 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00208 00209 TAO_Notify_EventChannel* ec = 0; 00210 factory->create (ec, ec_name); 00211 00212 ec->init (ecf, initial_qos, initial_admin); 00213 00214 // insert ec in ec container. 00215 ecf->ec_container().insert (ec); 00216 00217 CORBA::Object_var obj = ec->activate (ec); 00218 00219 // Populate the ID to return. 00220 id = ec->id (); 00221 00222 return CosNotifyChannelAdmin::EventChannel::_narrow (obj.in()); 00223 } |
|
= Factory Methods Build EventChannel Factory.
Definition at line 186 of file Builder.cpp. References TAO_Notify_EventChannelFactory::activate_self(), TAO_Notify_Factory::create(), TAO_Notify_Properties::factory(), TAO_Notify_EventChannelFactory::init(), and TAO_Notify_Properties::instance(). Referenced by TAO_CosNotify_Service::create().
00188 { 00189 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00190 00191 // Create ECF 00192 TAO_Notify_EventChannelFactory* ecf = 0; 00193 factory->create (ecf, name); 00194 00195 ecf->init (poa); 00196 return ecf->activate_self (); 00197 } |
|
Build the Filter Factory.
Definition at line 169 of file Builder.cpp. References ACE_NEW_THROW_EX, TAO_Notify_FilterFactory::create(), TAO_Notify_Properties::default_poa(), TAO_Notify_Properties::instance(), and ACE_Dynamic_Service< TYPE >::instance(). Referenced by TAO_Notify_EventChannelFactory::init().
00170 { 00171 TAO_Notify_FilterFactory* ff = ACE_Dynamic_Service<TAO_Notify_FilterFactory>::instance ("TAO_Notify_FilterFactory"); 00172 00173 if (ff == 0) 00174 { 00175 ACE_NEW_THROW_EX (ff, 00176 TAO_Notify_ETCL_FilterFactory (), 00177 CORBA::NO_MEMORY ()); 00178 } 00179 00180 PortableServer::POA_var default_poa = TAO_Notify_PROPERTIES::instance ()->default_poa (); 00181 00182 return ff->create (default_poa); 00183 } |
|
Build CosEC style ProxyConsumer.
Definition at line 487 of file Builder.cpp. References TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::ProxyID, CosNotification::QoSProperties, and TAO_Notify_CosEC_ProxyPushConsumer_Builder.
00488 { 00489 CosNotifyChannelAdmin::ProxyID proxy_id; 00490 00491 TAO_Notify_CosEC_ProxyPushConsumer_Builder pb; 00492 00493 CosNotification::QoSProperties initial_qos; 00494 00495 return pb.build (sa, proxy_id, initial_qos); 00496 } |
|
Build CosEC style ProxySupplier.
Definition at line 475 of file Builder.cpp. References TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::ProxyID, CosNotification::QoSProperties, and TAO_Notify_CosEC_ProxyPushSupplier_Builder.
00476 { 00477 CosNotifyChannelAdmin::ProxyID proxy_id; 00478 00479 TAO_Notify_CosEC_ProxyPushSupplier_Builder pb; 00480 00481 CosNotification::QoSProperties initial_qos; 00482 00483 return pb.build (ca, proxy_id, initial_qos); 00484 } |
|
Reload ProxySupplier.
Definition at line 442 of file Builder.cpp. References TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::ProxyID, TAO_Notify_ProxyPushSupplier_Builder, TAO_Notify_SequenceProxyPushSupplier_Builder, and TAO_Notify_StructuredProxyPushSupplier_Builder.
00445 { 00446 switch (ctype) 00447 { 00448 case CosNotifyChannelAdmin::ANY_EVENT: 00449 { 00450 TAO_Notify_ProxyPushSupplier_Builder pb; 00451 return pb.build (ca, proxy_id); 00452 } 00453 break; 00454 00455 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00456 { 00457 TAO_Notify_StructuredProxyPushSupplier_Builder pb; 00458 return pb.build (ca, proxy_id); 00459 } 00460 break; 00461 00462 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00463 { 00464 TAO_Notify_SequenceProxyPushSupplier_Builder pb; 00465 return pb.build (ca, proxy_id); 00466 } 00467 break; 00468 00469 default: 00470 throw CORBA::BAD_PARAM (); 00471 } 00472 } |
|
Build ProxySupplier.
Definition at line 375 of file Builder.cpp. References TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotification::QoSProperties, TAO_Notify_ProxyPushSupplier_Builder, TAO_Notify_SequenceProxyPushSupplier_Builder, and TAO_Notify_StructuredProxyPushSupplier_Builder.
00379 { 00380 switch (ctype) 00381 { 00382 case CosNotifyChannelAdmin::ANY_EVENT: 00383 { 00384 TAO_Notify_ProxyPushSupplier_Builder pb; 00385 return pb.build (ca, proxy_id, initial_qos); 00386 } 00387 break; 00388 00389 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00390 { 00391 TAO_Notify_StructuredProxyPushSupplier_Builder pb; 00392 return pb.build (ca, proxy_id, initial_qos); 00393 } 00394 break; 00395 00396 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00397 { 00398 TAO_Notify_SequenceProxyPushSupplier_Builder pb; 00399 return pb.build (ca, proxy_id, initial_qos); 00400 } 00401 break; 00402 00403 default: 00404 throw CORBA::BAD_PARAM (); 00405 } 00406 } |
|
Reload ProxyConsumer.
Definition at line 409 of file Builder.cpp. References TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::ProxyID, TAO_Notify_ProxyPushConsumer_Builder, TAO_Notify_SequenceProxyPushConsumer_Builder, and TAO_Notify_StructuredProxyPushConsumer_Builder.
00412 { 00413 switch (ctype) 00414 { 00415 case CosNotifyChannelAdmin::ANY_EVENT: 00416 { 00417 TAO_Notify_ProxyPushConsumer_Builder pb; 00418 return pb.build (sa, proxy_id); 00419 } 00420 break; 00421 00422 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00423 { 00424 TAO_Notify_StructuredProxyPushConsumer_Builder pb; 00425 return pb.build (sa, proxy_id); 00426 } 00427 break; 00428 00429 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00430 { 00431 TAO_Notify_SequenceProxyPushConsumer_Builder pb; 00432 return pb.build (sa, proxy_id); 00433 } 00434 break; 00435 00436 default: 00437 throw CORBA::BAD_PARAM (); 00438 } 00439 } |
|
|
Build ConsumerAdmin during topology restore TODO: this returns a reference to the actual type to accomodate loadable builder/factory there should be an appropriate base class for it to return. |
|
Build SupplierAdmin.
Definition at line 294 of file Builder.cpp. References TAO_Notify_Object::activate(), TAO_Notify_Factory::create(), TAO_Notify_Properties::factory(), TAO_Notify_Admin::filter_operator(), TAO_Notify_Object::id(), TAO_Notify_SupplierAdmin::init(), TAO_Notify_Properties::instance(), and TAO_Notify_EventChannel::sa_container(). Referenced by TAO_Notify_EventChannel::load_child(), and TAO_Notify_EventChannel::new_for_suppliers().
00297 { 00298 CosNotifyChannelAdmin::SupplierAdmin_var sa_ret; 00299 00300 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00301 00302 TAO_Notify_SupplierAdmin* sa = 0; 00303 factory->create (sa); 00304 00305 sa->init (ec); 00306 00307 sa->filter_operator (op); 00308 00309 CORBA::Object_var obj = sa->activate (sa); 00310 00311 id = sa->id (); 00312 00313 sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in()); 00314 00315 // insert admin in SA container. 00316 ec->sa_container().insert (sa); 00317 00318 return sa_ret._retn (); 00319 } |