#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) |
= 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) |
Build EventChannel. | |
virtual TAO_Notify_EventChannel * | build_event_channel (TAO_Notify_EventChannelFactory *ecf, const CosNotifyChannelAdmin::ChannelID id) |
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 169 of file Builder.cpp. References TAO_Notify_EventType::special().
00170 { 00171 // Init the static members. 00172 TAO_Notify_AnyEvent::event_type_ = TAO_Notify_EventType::special (); 00173 } |
|
Definition at line 175 of file Builder.cpp.
00176 { 00177 } |
|
Apply Thread Pools with Lanes.
Reimplemented in TAO_Notify_RT_Builder. Definition at line 586 of file Builder.cpp. References ACE_THROW.
00587 { 00588 // No lane support 00589 ACE_THROW (CORBA::NO_IMPLEMENT ()); 00590 } |
|
Apply Reactive concurrency.
Definition at line 554 of file Builder.cpp. References ACE_CHECK, ACE_ENV_SINGLE_ARG_PARAMETER, ACE_NEW_THROW_EX, and TAO_Notify_Reactive_Task::init().
00555 { 00556 TAO_Notify_Reactive_Task* worker_task; 00557 00558 ACE_NEW_THROW_EX (worker_task, 00559 TAO_Notify_Reactive_Task (), 00560 CORBA::NO_MEMORY ()); 00561 ACE_CHECK; 00562 00563 object.set_worker_task (worker_task); 00564 00565 worker_task->init (ACE_ENV_SINGLE_ARG_PARAMETER); 00566 ACE_CHECK; 00567 } |
|
Apply Thread Pools.
Reimplemented in TAO_Notify_RT_Builder. Definition at line 570 of file Builder.cpp. References ACE_CHECK, ACE_ENV_ARG_PARAMETER, ACE_NEW_THROW_EX, TAO_Notify_Object::admin_properties_, TAO_Notify_ThreadPool_Task::init(), and TAO_Notify_Object::set_worker_task().
00571 { 00572 TAO_Notify_ThreadPool_Task* worker_task; 00573 00574 ACE_NEW_THROW_EX (worker_task, 00575 TAO_Notify_ThreadPool_Task (), 00576 CORBA::NO_MEMORY ()); 00577 ACE_CHECK; 00578 00579 object.set_worker_task (worker_task); 00580 00581 worker_task->init (tp_params, object.admin_properties_ ACE_ENV_ARG_PARAMETER); 00582 ACE_CHECK; 00583 } |
|
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 276 of file Builder.cpp. References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_Notify_Object::activate(), TAO_Notify_EventChannel::ca_container_, TAO_Notify_Factory::create(), TAO_Notify_Admin::filter_operator(), TAO_Notify_Object::id(), TAO_Notify_ConsumerAdmin::init(), and TAO_Singleton< TYPE, ACE_LOCK >::instance(). Referenced by TAO_Notify_EventChannel::load_child().
00280 { 00281 CosNotifyChannelAdmin::ConsumerAdmin_var ca_ret; 00282 00283 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00284 00285 TAO_Notify_ConsumerAdmin* ca = 0; 00286 factory->create (ca ACE_ENV_ARG_PARAMETER); 00287 ACE_CHECK_RETURN (ca_ret._retn ()); 00288 00289 ca->init (ec ACE_ENV_ARG_PARAMETER); 00290 ACE_CHECK_RETURN (ca_ret._retn ()); 00291 00292 ca->filter_operator (op); 00293 00294 CORBA::Object_var obj = ca->activate (ca ACE_ENV_ARG_PARAMETER); 00295 ACE_CHECK_RETURN (ca_ret._retn ()); 00296 00297 id = ca->id (); 00298 00299 ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); 00300 ACE_CHECK_RETURN (ca_ret._retn ()); 00301 00302 // insert admin in CA container. 00303 ec->ca_container_->insert (ca ACE_ENV_ARG_PARAMETER); 00304 ACE_CHECK_RETURN (ca_ret._retn ()); 00305 00306 return ca_ret._retn (); 00307 } |
|
Definition at line 252 of file Builder.cpp. References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_Notify_Object::activate(), CosNotifyChannelAdmin::ChannelID, TAO_Notify_Factory::create(), TAO_Notify_EventChannelFactory::ec_container(), TAO_Notify_EventChannel::init(), and TAO_Singleton< TYPE, ACE_LOCK >::instance().
00255 { 00256 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00257 00258 TAO_Notify_EventChannel* ec = 0; 00259 factory->create (ec ACE_ENV_ARG_PARAMETER); 00260 ACE_CHECK_RETURN (0); 00261 00262 ec->init (ecf ACE_ENV_ARG_PARAMETER); //, initial_qos, initial_admin 00263 ACE_CHECK_RETURN (0); 00264 00265 // insert ec in ec container. 00266 ecf->ec_container().insert (ec ACE_ENV_ARG_PARAMETER); 00267 ACE_CHECK_RETURN (0); 00268 00269 ec->activate (ec, id ACE_ENV_ARG_PARAMETER); 00270 ACE_CHECK_RETURN (0); 00271 00272 return ec; 00273 } |
|
Build EventChannel.
Definition at line 218 of file Builder.cpp. References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_Notify_Object::activate(), CosNotification::AdminProperties, TAO_Notify_Factory::create(), TAO_Notify_EventChannelFactory::ec_container(), TAO_Notify_Object::id(), TAO_Notify_EventChannel::init(), TAO_Singleton< TYPE, ACE_LOCK >::instance(), and CosNotification::QoSProperties. Referenced by TAO_Notify_EventChannelFactory::load_child().
00223 { 00224 CosNotifyChannelAdmin::EventChannel_var ec_ret; 00225 00226 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00227 00228 TAO_Notify_EventChannel* ec = 0; 00229 factory->create (ec ACE_ENV_ARG_PARAMETER); 00230 ACE_CHECK_RETURN (ec_ret._retn ()); 00231 00232 ec->init (ecf, initial_qos, initial_admin ACE_ENV_ARG_PARAMETER); 00233 ACE_CHECK_RETURN (ec_ret._retn ()); 00234 00235 // insert ec in ec container. 00236 ecf->ec_container().insert (ec ACE_ENV_ARG_PARAMETER); 00237 ACE_CHECK_RETURN (ec_ret._retn ()); 00238 00239 CORBA::Object_var obj = ec->activate (ec ACE_ENV_ARG_PARAMETER); 00240 ACE_CHECK_RETURN (ec_ret._retn ()); 00241 00242 // Populate the ID to return. 00243 id = ec->id (); 00244 00245 ec_ret = CosNotifyChannelAdmin::EventChannel::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); 00246 ACE_CHECK_RETURN (ec_ret._retn ()); 00247 00248 return ec_ret._retn (); 00249 } |
|
= Factory Methods Build EventChannel Factory.
Definition at line 198 of file Builder.cpp. References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, TAO_Notify_EventChannelFactory::activate_self(), TAO_Notify_Factory::create(), TAO_Notify_EventChannelFactory::init(), and TAO_Singleton< TYPE, ACE_LOCK >::instance(). Referenced by TAO_CosNotify_Service::create().
00199 { 00200 CosNotifyChannelAdmin::EventChannelFactory_var ecf_ret; 00201 00202 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00203 00204 // Create ECF 00205 TAO_Notify_EventChannelFactory* ecf = 0; 00206 factory->create (ecf ACE_ENV_ARG_PARAMETER); 00207 ACE_CHECK_RETURN (ecf_ret._retn ()); 00208 00209 ecf->init (poa ACE_ENV_ARG_PARAMETER); 00210 ACE_CHECK_RETURN (ecf_ret._retn ()); 00211 ecf_ret = ecf->activate_self (ACE_ENV_SINGLE_ARG_PARAMETER); 00212 ACE_CHECK_RETURN (ecf_ret._retn ()); 00213 00214 return (ecf_ret._retn ()); 00215 } |
|
Build the Filter Factory.
Definition at line 180 of file Builder.cpp. References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, ACE_NEW_THROW_EX, TAO_Notify_FilterFactory::create(), TAO_Singleton< TYPE, ACE_LOCK >::instance(), and ACE_Dynamic_Service< TYPE >::instance().
00181 { 00182 TAO_Notify_FilterFactory* ff = ACE_Dynamic_Service<TAO_Notify_FilterFactory>::instance ("TAO_Notify_FilterFactory"); 00183 00184 if (ff == 0) 00185 { 00186 ACE_NEW_THROW_EX (ff, 00187 TAO_Notify_ETCL_FilterFactory (), 00188 CORBA::NO_MEMORY ()); 00189 ACE_CHECK_RETURN (CosNotifyFilter::FilterFactory::_nil ()); 00190 } 00191 00192 PortableServer::POA_var default_poa = TAO_Notify_PROPERTIES::instance ()->default_poa (); 00193 00194 return ff->create (default_poa ACE_ENV_ARG_PARAMETER); 00195 } |
|
Build CosEC style ProxyConsumer.
Definition at line 542 of file Builder.cpp. References ACE_ENV_ARG_PARAMETER, TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::ProxyID, CosNotification::QoSProperties, and TAO_Notify_CosEC_ProxyPushConsumer_Builder.
00543 { 00544 CosNotifyChannelAdmin::ProxyID proxy_id; 00545 00546 TAO_Notify_CosEC_ProxyPushConsumer_Builder pb; 00547 00548 CosNotification::QoSProperties initial_qos; 00549 00550 return pb.build (sa, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER); 00551 } |
|
Build CosEC style ProxySupplier.
Definition at line 530 of file Builder.cpp. References ACE_ENV_ARG_PARAMETER, TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::ProxyID, CosNotification::QoSProperties, and TAO_Notify_CosEC_ProxyPushSupplier_Builder.
00531 { 00532 CosNotifyChannelAdmin::ProxyID proxy_id; 00533 00534 TAO_Notify_CosEC_ProxyPushSupplier_Builder pb; 00535 00536 CosNotification::QoSProperties initial_qos; 00537 00538 return pb.build (ca, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER); 00539 } |
|
Reload ProxySupplier.
Definition at line 495 of file Builder.cpp. References ACE_ENV_ARG_PARAMETER, ACE_THROW_RETURN, 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.
00499 { 00500 switch (ctype) 00501 { 00502 case CosNotifyChannelAdmin::ANY_EVENT: 00503 { 00504 TAO_Notify_ProxyPushSupplier_Builder pb; 00505 return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER); 00506 } 00507 break; 00508 00509 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00510 { 00511 TAO_Notify_StructuredProxyPushSupplier_Builder pb; 00512 return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER); 00513 } 00514 break; 00515 00516 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00517 { 00518 TAO_Notify_SequenceProxyPushSupplier_Builder pb; 00519 return pb.build (ca, proxy_id ACE_ENV_ARG_PARAMETER); 00520 } 00521 break; 00522 00523 default: 00524 ACE_THROW_RETURN (CORBA::BAD_PARAM (), 00525 0); 00526 } 00527 } |
|
Build ProxySupplier.
Definition at line 424 of file Builder.cpp. References ACE_ENV_ARG_PARAMETER, ACE_THROW_RETURN, 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.
00429 { 00430 switch (ctype) 00431 { 00432 case CosNotifyChannelAdmin::ANY_EVENT: 00433 { 00434 TAO_Notify_ProxyPushSupplier_Builder pb; 00435 return pb.build (ca, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER); 00436 } 00437 break; 00438 00439 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00440 { 00441 TAO_Notify_StructuredProxyPushSupplier_Builder pb; 00442 return pb.build (ca, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER); 00443 } 00444 break; 00445 00446 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00447 { 00448 TAO_Notify_SequenceProxyPushSupplier_Builder pb; 00449 return pb.build (ca, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER); 00450 } 00451 break; 00452 00453 default: 00454 ACE_THROW_RETURN (CORBA::BAD_PARAM (), 00455 CosNotifyChannelAdmin::ProxySupplier::_nil ()); 00456 } 00457 } |
|
Reload ProxyConsumer.
Definition at line 460 of file Builder.cpp. References ACE_ENV_ARG_PARAMETER, ACE_THROW_RETURN, 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.
00464 { 00465 switch (ctype) 00466 { 00467 case CosNotifyChannelAdmin::ANY_EVENT: 00468 { 00469 TAO_Notify_ProxyPushConsumer_Builder pb; 00470 return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER); 00471 } 00472 break; 00473 00474 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00475 { 00476 TAO_Notify_StructuredProxyPushConsumer_Builder pb; 00477 return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER); 00478 } 00479 break; 00480 00481 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00482 { 00483 TAO_Notify_SequenceProxyPushConsumer_Builder pb; 00484 return pb.build (sa, proxy_id ACE_ENV_ARG_PARAMETER); 00485 } 00486 break; 00487 00488 default: 00489 ACE_THROW_RETURN (CORBA::BAD_PARAM (), 00490 0); 00491 } 00492 } |
|
Build ProxyConsumer.
Definition at line 388 of file Builder.cpp. References ACE_ENV_ARG_PARAMETER, ACE_THROW_RETURN, TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotification::QoSProperties, TAO_Notify_ProxyPushConsumer_Builder, TAO_Notify_SequenceProxyPushConsumer_Builder, and TAO_Notify_StructuredProxyPushConsumer_Builder. Referenced by TAO_Notify_SupplierAdmin::load_proxy(), and TAO_Notify_ConsumerAdmin::load_proxy().
00393 { 00394 switch (ctype) 00395 { 00396 case CosNotifyChannelAdmin::ANY_EVENT: 00397 { 00398 TAO_Notify_ProxyPushConsumer_Builder pb; 00399 return pb.build (sa, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER); 00400 } 00401 break; 00402 00403 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00404 { 00405 TAO_Notify_StructuredProxyPushConsumer_Builder pb; 00406 return pb.build (sa, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER); 00407 } 00408 break; 00409 00410 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00411 { 00412 TAO_Notify_SequenceProxyPushConsumer_Builder pb; 00413 return pb.build (sa, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER); 00414 } 00415 break; 00416 00417 default: 00418 ACE_THROW_RETURN (CORBA::BAD_PARAM (), 00419 CosNotifyChannelAdmin::ProxyConsumer::_nil ()); 00420 } 00421 } |
|
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 333 of file Builder.cpp. References ACE_CHECK_RETURN, ACE_ENV_ARG_PARAMETER, TAO_Notify_Object::activate(), TAO_Notify_Factory::create(), TAO_Notify_Admin::filter_operator(), TAO_Notify_Object::id(), TAO_Notify_SupplierAdmin::init(), TAO_Singleton< TYPE, ACE_LOCK >::instance(), and TAO_Notify_EventChannel::sa_container(). Referenced by TAO_Notify_EventChannel::load_child().
00334 { 00335 CosNotifyChannelAdmin::SupplierAdmin_var sa_ret; 00336 00337 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00338 00339 TAO_Notify_SupplierAdmin* sa = 0; 00340 factory->create (sa ACE_ENV_ARG_PARAMETER); 00341 ACE_CHECK_RETURN (sa_ret._retn ()); 00342 00343 sa->init (ec ACE_ENV_ARG_PARAMETER); 00344 ACE_CHECK_RETURN (sa_ret._retn ()); 00345 00346 sa->filter_operator (op); 00347 00348 CORBA::Object_var obj = sa->activate (sa ACE_ENV_ARG_PARAMETER); 00349 ACE_CHECK_RETURN (sa_ret._retn ()); 00350 00351 id = sa->id (); 00352 00353 sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER); 00354 ACE_CHECK_RETURN (sa_ret._retn ()); 00355 00356 // insert admin in SA container. 00357 ec->sa_container().insert (sa ACE_ENV_ARG_PARAMETER); 00358 ACE_CHECK_RETURN (sa_ret._retn ()); 00359 00360 return sa_ret._retn (); 00361 } |