Helper class to create and activate CORBA objects. More...
#include <Builder.h>
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 | |
virtual CosNotifyFilter::FilterFactory_ptr | build_filter_factory (PortableServer::POA_ptr poa, TAO_Notify_FilterFactory *&ff) |
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. |
Helper class to create and activate CORBA objects.
Definition at line 48 of file Builder.h.
TAO_Notify_Builder::TAO_Notify_Builder | ( | void | ) |
Definition at line 159 of file Builder.cpp.
{ // Init the static members. TAO_Notify_AnyEvent::event_type_ = TAO_Notify_EventType::special (); }
TAO_Notify_Builder::~TAO_Notify_Builder | ( | ) | [virtual] |
Definition at line 165 of file Builder.cpp.
{ }
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 526 of file Builder.cpp.
{ // No lane support throw CORBA::NO_IMPLEMENT (); }
void TAO_Notify_Builder::apply_reactive_concurrency | ( | TAO_Notify_Object & | object | ) | [virtual] |
Apply Reactive concurrency.
Definition at line 498 of file Builder.cpp.
{ TAO_Notify_Reactive_Task* worker_task; ACE_NEW_THROW_EX (worker_task, TAO_Notify_Reactive_Task (), CORBA::NO_MEMORY ()); object.set_worker_task (worker_task); worker_task->init (); }
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 512 of file Builder.cpp.
{ TAO_Notify_ThreadPool_Task* worker_task = 0; ACE_NEW_THROW_EX (worker_task, TAO_Notify_ThreadPool_Task (), CORBA::NO_MEMORY ()); object.set_worker_task (worker_task); worker_task->init (tp_params, object.admin_properties_); }
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 246 of file Builder.cpp.
{ CosNotifyChannelAdmin::ConsumerAdmin_var ca_ret; TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); TAO_Notify_ConsumerAdmin* ca = 0; factory->create (ca); ca->init (ec); ca->filter_operator (op); CORBA::Object_var obj = ca->activate (ca); id = ca->id (); ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in()); // insert admin in CA container. ec->ca_container_->insert (ca); return ca_ret._retn (); }
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.
Definition at line 275 of file Builder.cpp.
{ TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); TAO_Notify_ConsumerAdmin * ca = 0; factory->create (ca); ca->init (ec); CORBA::Object_var obj = ca->activate (ca, id); // insert admin in CA container. ec->ca_container_->insert (ca); return ca; }
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, | |||
const char * | ec_name = 0 | |||
) | [virtual] |
Build EventChannel.
Definition at line 199 of file Builder.cpp.
{ TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); TAO_Notify_EventChannel* ec = 0; factory->create (ec, ec_name); ec->init (ecf, initial_qos, initial_admin); // insert ec in ec container. ecf->ec_container().insert (ec); CORBA::Object_var obj = ec->activate (ec); // Populate the ID to return. id = ec->id (); return CosNotifyChannelAdmin::EventChannel::_narrow (obj.in()); }
TAO_Notify_EventChannel * TAO_Notify_Builder::build_event_channel | ( | TAO_Notify_EventChannelFactory * | ecf, | |
const CosNotifyChannelAdmin::ChannelID | id, | |||
const char * | ec_name = 0 | |||
) | [virtual] |
Definition at line 225 of file Builder.cpp.
{ TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); TAO_Notify_EventChannel* ec = 0; factory->create (ec, ec_name); ec->init (ecf); //, initial_qos, initial_admin // insert ec in ec container. ecf->ec_container().insert (ec); ec->activate (ec, id); return ec; }
CosNotifyChannelAdmin::EventChannelFactory_ptr TAO_Notify_Builder::build_event_channel_factory | ( | PortableServer::POA_ptr | poa, | |
const char * | factory_name = 0 | |||
) | [virtual] |
= Factory Methods
Build EventChannel Factory.
Definition at line 185 of file Builder.cpp.
{ TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); // Create ECF TAO_Notify_EventChannelFactory* ecf = 0; factory->create (ecf, name); ecf->init (poa); return ecf->activate_self (); }
CosNotifyFilter::FilterFactory_ptr TAO_Notify_Builder::build_filter_factory | ( | PortableServer::POA_ptr | poa, | |
TAO_Notify_FilterFactory *& | ff | |||
) | [virtual] |
Build the Filter Factory.
Definition at line 170 of file Builder.cpp.
{ ff = ACE_Dynamic_Service<TAO_Notify_FilterFactory>::instance ("TAO_Notify_FilterFactory"); if (ff == 0) { ACE_NEW_THROW_EX (ff, TAO_Notify_ETCL_FilterFactory (), CORBA::NO_MEMORY ()); } return ff->create (poa); }
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 408 of file Builder.cpp.
{ switch (ctype) { case CosNotifyChannelAdmin::ANY_EVENT: { TAO_Notify_ProxyPushConsumer_Builder pb; return pb.build (sa, proxy_id); } break; case CosNotifyChannelAdmin::STRUCTURED_EVENT: { TAO_Notify_StructuredProxyPushConsumer_Builder pb; return pb.build (sa, proxy_id); } break; case CosNotifyChannelAdmin::SEQUENCE_EVENT: { TAO_Notify_SequenceProxyPushConsumer_Builder pb; return pb.build (sa, proxy_id); } break; default: throw CORBA::BAD_PARAM (); } }
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 340 of file Builder.cpp.
{ switch (ctype) { case CosNotifyChannelAdmin::ANY_EVENT: { TAO_Notify_ProxyPushConsumer_Builder pb; return pb.build (sa, proxy_id, initial_qos); } break; case CosNotifyChannelAdmin::STRUCTURED_EVENT: { TAO_Notify_StructuredProxyPushConsumer_Builder pb; return pb.build (sa, proxy_id, initial_qos); } break; case CosNotifyChannelAdmin::SEQUENCE_EVENT: { TAO_Notify_SequenceProxyPushConsumer_Builder pb; return pb.build (sa, proxy_id, initial_qos); } break; default: throw CORBA::BAD_PARAM (); } }
CosEventChannelAdmin::ProxyPushConsumer_ptr TAO_Notify_Builder::build_proxy | ( | TAO_Notify_SupplierAdmin * | sa | ) | [virtual] |
Build CosEC style ProxyConsumer.
Definition at line 486 of file Builder.cpp.
{ CosNotifyChannelAdmin::ProxyID proxy_id; TAO_Notify_CosEC_ProxyPushConsumer_Builder pb; CosNotification::QoSProperties initial_qos; return pb.build (sa, proxy_id, initial_qos); }
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 441 of file Builder.cpp.
{ switch (ctype) { case CosNotifyChannelAdmin::ANY_EVENT: { TAO_Notify_ProxyPushSupplier_Builder pb; return pb.build (ca, proxy_id); } break; case CosNotifyChannelAdmin::STRUCTURED_EVENT: { TAO_Notify_StructuredProxyPushSupplier_Builder pb; return pb.build (ca, proxy_id); } break; case CosNotifyChannelAdmin::SEQUENCE_EVENT: { TAO_Notify_SequenceProxyPushSupplier_Builder pb; return pb.build (ca, proxy_id); } break; default: throw CORBA::BAD_PARAM (); } }
CosEventChannelAdmin::ProxyPushSupplier_ptr TAO_Notify_Builder::build_proxy | ( | TAO_Notify_ConsumerAdmin * | ca | ) | [virtual] |
Build CosEC style ProxySupplier.
Definition at line 474 of file Builder.cpp.
{ CosNotifyChannelAdmin::ProxyID proxy_id; TAO_Notify_CosEC_ProxyPushSupplier_Builder pb; CosNotification::QoSProperties initial_qos; return pb.build (ca, proxy_id, initial_qos); }
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 374 of file Builder.cpp.
{ switch (ctype) { case CosNotifyChannelAdmin::ANY_EVENT: { TAO_Notify_ProxyPushSupplier_Builder pb; return pb.build (ca, proxy_id, initial_qos); } break; case CosNotifyChannelAdmin::STRUCTURED_EVENT: { TAO_Notify_StructuredProxyPushSupplier_Builder pb; return pb.build (ca, proxy_id, initial_qos); } break; case CosNotifyChannelAdmin::SEQUENCE_EVENT: { TAO_Notify_SequenceProxyPushSupplier_Builder pb; return pb.build (ca, proxy_id, initial_qos); } break; default: throw CORBA::BAD_PARAM (); } }
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 293 of file Builder.cpp.
{ CosNotifyChannelAdmin::SupplierAdmin_var sa_ret; TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); TAO_Notify_SupplierAdmin* sa = 0; factory->create (sa); sa->init (ec); sa->filter_operator (op); CORBA::Object_var obj = sa->activate (sa); id = sa->id (); sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in()); // insert admin in SA container. ec->sa_container().insert (sa); return sa_ret._retn (); }
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.
Definition at line 321 of file Builder.cpp.
{ TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); TAO_Notify_SupplierAdmin * sa = 0; factory->create (sa); sa->init (ec); CORBA::Object_var obj = sa->activate (sa, id); // insert admin in CA container. ec->sa_container().insert (sa); return sa; }