#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 }
|
1.3.6