TAO_Notify_Builder Class Reference

Helper class to create and activate CORBA objects. More...

#include <Builder.h>

Inheritance diagram for TAO_Notify_Builder:

Inheritance graph
[legend]
List of all members.

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_EventChannelbuild_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_ConsumerAdminbuild_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_SupplierAdminbuild_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_ProxyConsumerbuild_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_ProxySupplierbuild_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.


Detailed Description

Helper class to create and activate CORBA objects.

Definition at line 48 of file Builder.h.


Constructor & Destructor Documentation

TAO_Notify_Builder::TAO_Notify_Builder void   ) 
 

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 }

TAO_Notify_Builder::~TAO_Notify_Builder  )  [virtual]
 

Definition at line 175 of file Builder.cpp.

00176 {
00177 }


Member Function Documentation

void TAO_Notify_Builder::apply_lane_concurrency TAO_Notify_Object object,
const NotifyExt::ThreadPoolLanesParams &  tpl_params
[virtual]
 

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 }

void TAO_Notify_Builder::apply_reactive_concurrency TAO_Notify_Object object  )  [virtual]
 

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 }

void TAO_Notify_Builder::apply_thread_pool_concurrency TAO_Notify_Object object,
const NotifyExt::ThreadPoolParams &  tp_params
[virtual]
 

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 }

virtual TAO_Notify_ConsumerAdmin* TAO_Notify_Builder::build_consumer_admin TAO_Notify_EventChannel ec,
const CosNotifyChannelAdmin::AdminID  id
[virtual]
 

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.

CosNotifyChannelAdmin::ConsumerAdmin_ptr TAO_Notify_Builder::build_consumer_admin TAO_Notify_EventChannel ec,
CosNotifyChannelAdmin::InterFilterGroupOperator  op,
CosNotifyChannelAdmin::AdminID_out  id
[virtual]
 

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 }

TAO_Notify_EventChannel * TAO_Notify_Builder::build_event_channel TAO_Notify_EventChannelFactory ecf,
const CosNotifyChannelAdmin::ChannelID  id
[virtual]
 

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 }

CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_Builder::build_event_channel TAO_Notify_EventChannelFactory ecf,
const CosNotification::QoSProperties initial_qos,
const CosNotification::AdminProperties initial_admin,
CosNotifyChannelAdmin::ChannelID_out  id
[virtual]
 

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 }

CosNotifyChannelAdmin::EventChannelFactory_ptr TAO_Notify_Builder::build_event_channel_factory PortableServer::POA_ptr  poa  )  [virtual]
 

= 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 }

CosNotifyFilter::FilterFactory_ptr TAO_Notify_Builder::build_filter_factory  )  [virtual]
 

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 }

CosEventChannelAdmin::ProxyPushConsumer_ptr TAO_Notify_Builder::build_proxy TAO_Notify_SupplierAdmin sa  )  [virtual]
 

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 }

CosEventChannelAdmin::ProxyPushSupplier_ptr TAO_Notify_Builder::build_proxy TAO_Notify_ConsumerAdmin ca  )  [virtual]
 

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 }

TAO_Notify_ProxySupplier * TAO_Notify_Builder::build_proxy TAO_Notify_ConsumerAdmin ca,
CosNotifyChannelAdmin::ClientType  ctype,
const CosNotifyChannelAdmin::ProxyID  proxy_id
[virtual]
 

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 }

CosNotifyChannelAdmin::ProxySupplier_ptr TAO_Notify_Builder::build_proxy TAO_Notify_ConsumerAdmin ca,
CosNotifyChannelAdmin::ClientType  ctype,
CosNotifyChannelAdmin::ProxyID_out  proxy_id,
const CosNotification::QoSProperties initial_qos
[virtual]
 

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 }

TAO_Notify_ProxyConsumer * TAO_Notify_Builder::build_proxy TAO_Notify_SupplierAdmin sa,
CosNotifyChannelAdmin::ClientType  ctype,
const CosNotifyChannelAdmin::ProxyID  proxy_id
[virtual]
 

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 }

CosNotifyChannelAdmin::ProxyConsumer_ptr TAO_Notify_Builder::build_proxy TAO_Notify_SupplierAdmin sa,
CosNotifyChannelAdmin::ClientType  ctype,
CosNotifyChannelAdmin::ProxyID_out  proxy_id,
const CosNotification::QoSProperties initial_qos
[virtual]
 

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 }

virtual TAO_Notify_SupplierAdmin* TAO_Notify_Builder::build_supplier_admin TAO_Notify_EventChannel ec,
const CosNotifyChannelAdmin::AdminID  id
[virtual]
 

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.

CosNotifyChannelAdmin::SupplierAdmin_ptr TAO_Notify_Builder::build_supplier_admin TAO_Notify_EventChannel ec,
CosNotifyChannelAdmin::InterFilterGroupOperator  op,
CosNotifyChannelAdmin::AdminID_out  id
[virtual]
 

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 }


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 13:31:40 2006 for TAO_CosNotification by doxygen 1.3.6