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;
}
1.7.0