本文整理汇总了C++中cosnotifychanneladmin::EventChannel_var::_retn方法的典型用法代码示例。如果您正苦于以下问题:C++ EventChannel_var::_retn方法的具体用法?C++ EventChannel_var::_retn怎么用?C++ EventChannel_var::_retn使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cosnotifychanneladmin::EventChannel_var
的用法示例。
在下文中一共展示了EventChannel_var::_retn方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
CosNotifyChannelAdmin::EventChannel_ptr
TAO_Notify_Lanes_Supplier_Client::create_ec (void)
{
CosNotifyChannelAdmin::EventChannel_var ec;
CosNotifyChannelAdmin::EventChannelFactory_var ecf = this->orb_objects_.notify_factory ();
// Create an EventChannel
CosNotification::QoSProperties qos;
CosNotification::AdminProperties admin;
// Create an event channel
CosNotifyChannelAdmin::ChannelID id;
ec = ecf->create_channel (qos,
admin,
id);
// Set the Qos : 2 Lanes
NotifyExt::ThreadPoolLanesParams tpl_params;
tpl_params.priority_model = NotifyExt::CLIENT_PROPAGATED;
tpl_params.server_priority = 0;
tpl_params.stacksize = 0;
tpl_params.lanes.length (this->consumer_count_ + 1);
tpl_params.allow_borrowing = 0;
tpl_params.allow_request_buffering = 0;
tpl_params.max_buffered_requests = 0;
tpl_params.max_request_buffer_size = 0;
/*
* Note that we actually create 1 extra Lane.
* The extra Lane at priority 0 is created to match the priority 0 of the supplier thread.
* As the ProxyConsumer is activated in an RT POA with lanes, each invocation must mach some lane.
* Now, we typically reserve higer priorities to make requests and the lowest priority 0 for administrative calls
* e.g. <subscription_change>. If we do not have a lane at the lowest 0 priority, then the invocation made from
* the supplier at priority 0 will fail.
*/
tpl_params.lanes[0].lane_priority = 0; // Priority 0
tpl_params.lanes[0].static_threads = 1;
tpl_params.lanes[0].dynamic_threads = 0;
RTCORBA::Priority priority = 1; // The priority at which we send an event each.
for (int i = 1; i <= this->consumer_count_; ++i, ++priority)
{
tpl_params.lanes[i].lane_priority = priority;
tpl_params.lanes[i].static_threads = 1;
tpl_params.lanes[i].dynamic_threads = 0;
}
qos.length (1);
qos[0].name = CORBA::string_dup (NotifyExt::ThreadPoolLanes);
qos[0].value <<= tpl_params;
// Note that instead of <set_qos>, the <qos> can also be passed while creating the channel.
ec->set_qos (qos);
return ec._retn ();
}
示例2:
::CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_EventChannelFactory::create_channel (
const CosNotification::QoSProperties & initial_qos,
const CosNotification::AdminProperties & initial_admin,
CosNotifyChannelAdmin::ChannelID_out id
)
{
CosNotifyChannelAdmin::EventChannel_var ec =
TAO_Notify_PROPERTIES::instance()->builder()->build_event_channel (this
, initial_qos
, initial_admin
, id);
this->self_change ();
return ec._retn ();
}
示例3: qos
CosNotifyChannelAdmin::EventChannel_ptr
TAO_Notify_ThreadPool_Supplier_Client::create_ec (void)
{
CosNotifyChannelAdmin::EventChannel_var ec;
CosNotifyChannelAdmin::EventChannelFactory_var ecf = this->orb_objects_.notify_factory ();
// Create an EventChannel
CosNotification::QoSProperties qos;
CosNotification::AdminProperties admin;
// Create an event channel
CosNotifyChannelAdmin::ChannelID id;
ec = ecf->create_channel (qos,
admin,
id);
// Set the Qos
// See $TAO_ROOT/orbsvcs/orbsvcs/NotifyExt.idl
if (this->ec_thread_count_)
{
NotifyExt::ThreadPoolParams tp_params = { NotifyExt::CLIENT_PROPAGATED, 0,
0, static_cast<CORBA::ULong> (this->ec_thread_count_),
0, 0, 0, 0, 0 };
CosNotification::QoSProperties qos (1);
qos.length (1);
qos[0].name = CORBA::string_dup (NotifyExt::ThreadPool);
qos[0].value <<= tp_params;
// Note that instead of <set_qos>, the <qos> can also be passed while creating the channel.
ec->set_qos (qos);
}
ACE_DEBUG ((LM_DEBUG, "(%P,%t) Created Event Channel with %d threads\n", this->ec_thread_count_));
return ec._retn ();
}
示例4: init_qos
CosNotifyChannelAdmin::EventChannel_var
get_event_channel(CORBA::ORB_ptr orb)
{
CosNotifyChannelAdmin::EventChannel_var ec;
CosNotifyChannelAdmin::ChannelID id;
CosNotification::QoSProperties init_qos(0);
CosNotification::AdminProperties init_admin(0);
std::cout << "Get CosNotifyChannelAdmin::EventChannelFactory" << std::endl;
std::cout << "IorEventChannelFactory=" << ior << std::endl;
CORBA::Object_var obj = orb->string_to_object(ior);
if (CORBA::is_nil(obj.in ()))
{
std::cerr << "Bad ec_fact.ior " << std::endl;
exit(1);
}
CosNotifyChannelAdmin::EventChannelFactory_var factory =
CosNotifyChannelAdmin::EventChannelFactory::_narrow(obj.in ());
if (CORBA::is_nil(factory.in()))
{
std::cerr << "Could not _narrow object to type CosNotifyChannelAdmin::EventChannelFactory" << std::endl;
exit(1);
}
//Get the first ec
CosNotifyChannelAdmin::ChannelIDSeq_var channelIdSeq;
try
{
channelIdSeq = factory->get_all_channels();
}
catch (CORBA::SystemException& se )
{
std::cerr << "System exception occurred during get_all_channels: "
<< se << std::endl;
exit(1);
}
if( channelIdSeq->length() == 0 )
{
try
{
ec = factory->create_channel( init_qos, init_admin, id);
}
catch (CORBA::SystemException& se )
{
std::cerr << "System exception occurred during find_channel: "
<< se << std::endl;
exit(1);
}
}
else {
try
{
ec = factory->get_event_channel(channelIdSeq.in()[0]);
}
catch (CosNotifyChannelAdmin::ChannelNotFound&)
{
std::cerr << "ChannelNotFound: "
<< channelIdSeq.in()[0] << std::endl;
exit(1);
}
catch (CORBA::SystemException& se )
{
std::cerr << "System exception occurred during get_event_channel: "
<< se << std::endl;
exit(1);
}
}
return ec._retn();
}