📄 builder.cpp
字号:
ec_ret = CosNotifyChannelAdmin::EventChannel::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ec_ret._retn ());
return ec_ret._retn ();
}
CosNotifyChannelAdmin::ConsumerAdmin_ptr
TAO_Notify_Builder::build_consumer_admin (TAO_Notify_EventChannel* ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL)
{
CosNotifyChannelAdmin::ConsumerAdmin_var ca_ret;
TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory ();
TAO_Notify_ConsumerAdmin* ca = 0;
factory->create (ca ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
PortableServer::ServantBase_var servant_var (ca);
ca->init (ec ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
ca->filter_operator (op);
CORBA::Object_var obj = ca->activate (ca ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
id = ca->id ();
ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
// insert admin in CA container.
ec->ca_container_->insert (ca ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (ca_ret._retn ());
return ca_ret._retn ();
}
CosNotifyChannelAdmin::SupplierAdmin_ptr
TAO_Notify_Builder::build_supplier_admin (TAO_Notify_EventChannel* ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id ACE_ENV_ARG_DECL)
{
CosNotifyChannelAdmin::SupplierAdmin_var sa_ret;
TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory ();
TAO_Notify_SupplierAdmin* sa = 0;
factory->create (sa ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
PortableServer::ServantBase_var servant_var (sa);
sa->init (ec ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
sa->filter_operator (op);
CORBA::Object_var obj = sa->activate (sa ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
id = sa->id ();
sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in() ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
// insert admin in SA container.
ec->sa_container_->insert (sa ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (sa_ret._retn ());
return sa_ret._retn ();
}
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
ACE_ENV_ARG_DECL)
{
switch (ctype)
{
case CosNotifyChannelAdmin::ANY_EVENT:
{
TAO_Notify_ProxyPushConsumer_Builder pb;
return pb.build (sa, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER);
}
break;
case CosNotifyChannelAdmin::STRUCTURED_EVENT:
{
TAO_Notify_StructuredProxyPushConsumer_Builder pb;
return pb.build (sa, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER);
}
break;
case CosNotifyChannelAdmin::SEQUENCE_EVENT:
{
TAO_Notify_SequenceProxyPushConsumer_Builder pb;
return pb.build (sa, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER);
}
break;
default:
ACE_THROW_RETURN (CORBA::BAD_PARAM (),
CosNotifyChannelAdmin::ProxyConsumer::_nil ());
}
}
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
ACE_ENV_ARG_DECL)
{
switch (ctype)
{
case CosNotifyChannelAdmin::ANY_EVENT:
{
TAO_Notify_ProxyPushSupplier_Builder pb;
return pb.build (ca, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER);
}
break;
case CosNotifyChannelAdmin::STRUCTURED_EVENT:
{
TAO_Notify_StructuredProxyPushSupplier_Builder pb;
return pb.build (ca, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER);
}
break;
case CosNotifyChannelAdmin::SEQUENCE_EVENT:
{
TAO_Notify_SequenceProxyPushSupplier_Builder pb;
return pb.build (ca, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER);
}
break;
default:
ACE_THROW_RETURN (CORBA::BAD_PARAM (),
CosNotifyChannelAdmin::ProxySupplier::_nil ());
}
}
CosEventChannelAdmin::ProxyPushSupplier_ptr
TAO_Notify_Builder::build_proxy (TAO_Notify_ConsumerAdmin* ca ACE_ENV_ARG_DECL)
{
CosNotifyChannelAdmin::ProxyID proxy_id;
TAO_Notify_CosEC_ProxyPushSupplier_Builder pb;
CosNotification::QoSProperties initial_qos;
return pb.build (ca, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER);
}
CosEventChannelAdmin::ProxyPushConsumer_ptr
TAO_Notify_Builder::build_proxy (TAO_Notify_SupplierAdmin* sa ACE_ENV_ARG_DECL)
{
CosNotifyChannelAdmin::ProxyID proxy_id;
TAO_Notify_CosEC_ProxyPushConsumer_Builder pb;
CosNotification::QoSProperties initial_qos;
return pb.build (sa, proxy_id, initial_qos ACE_ENV_ARG_PARAMETER);
}
void
TAO_Notify_Builder::apply_reactive_concurrency (TAO_Notify_Object& object ACE_ENV_ARG_DECL)
{
TAO_Notify_Reactive_Task* worker_task;
ACE_NEW_THROW_EX (worker_task,
TAO_Notify_Reactive_Task (),
CORBA::NO_MEMORY ());
ACE_CHECK;
worker_task->init (object.admin_properties_ ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
object.worker_task_own (worker_task);
object.worker_task_->_decr_refcnt ();
}
void
TAO_Notify_Builder::apply_thread_pool_concurrency (TAO_Notify_Object& object, const NotifyExt::ThreadPoolParams& tp_params ACE_ENV_ARG_DECL)
{
TAO_Notify_ThreadPool_Task* worker_task;
ACE_NEW_THROW_EX (worker_task,
TAO_Notify_ThreadPool_Task (),
CORBA::NO_MEMORY ());
ACE_CHECK;
worker_task->init (tp_params, object.admin_properties_ ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
object.worker_task_own (worker_task);
object.worker_task_->_decr_refcnt ();
}
void
TAO_Notify_Builder::apply_lane_concurrency (TAO_Notify_Object& /*object*/, const NotifyExt::ThreadPoolLanesParams& /*tpl_params*/ ACE_ENV_ARG_DECL)
{
// No lane support
ACE_THROW (CORBA::NO_IMPLEMENT ());
}
#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
template class ACE_Dynamic_Service<TAO_Notify_FilterFactory>;
#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
#pragma instantiate ACE_Dynamic_Service<TAO_Notify_FilterFactory>
#endif /*ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -