本文整理汇总了C++中cosnotifychanneladmin::ProxySupplier_var类的典型用法代码示例。如果您正苦于以下问题:C++ ProxySupplier_var类的具体用法?C++ ProxySupplier_var怎么用?C++ ProxySupplier_var使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ProxySupplier_var类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: properties
void
Notify_Sequence_Push_Consumer::_connect (
CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin)
{
CosNotifyComm::SequencePushConsumer_var objref =
this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier =
consumer_admin->obtain_notification_push_supplier (
CosNotifyChannelAdmin::SEQUENCE_EVENT,
proxy_id_);
this->proxy_ =
CosNotifyChannelAdmin::SequenceProxyPushSupplier::_narrow (
proxysupplier.in ());
CosNotification::QoSProperties properties (1);
properties.length (1);
properties[0].name = CORBA::string_dup (CosNotification::PacingInterval);
properties[0].value <<= PACING;
this->proxy_->set_qos (properties);
this->proxy_->connect_sequence_push_consumer (objref.in ());
// give ownership to POA
this->_remove_ref ();
}
开发者ID:asdlei00,项目名称:ACE,代码行数:27,代码来源:Notify_Push_Consumer.cpp
示例2: qos
void
TAO_Notify_ThreadPool_Consumer::connect (void)
{
// Activate the consumer with the default_POA_
CosNotifyComm::StructuredPushConsumer_var objref = this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier;
if (this->proxy_supplier_thread_count_ != 0)
{
// Narrow to the extended interface.
NotifyExt::ConsumerAdmin_var admin_ext = NotifyExt::ConsumerAdmin::_narrow (this->admin_.in ());
NotifyExt::ThreadPoolParams tp_params = { NotifyExt::CLIENT_PROPAGATED, 0,
0, static_cast<CORBA::ULong> (this->proxy_supplier_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;
// Obtain the proxy. The QoS is applied to the POA in which the Proxy is hosted.
proxysupplier = admin_ext->obtain_notification_push_supplier_with_qos (CosNotifyChannelAdmin::STRUCTURED_EVENT
, proxy_supplier_id_, qos);
}
else
{
proxysupplier = this->admin_->obtain_notification_push_supplier (CosNotifyChannelAdmin::STRUCTURED_EVENT
, proxy_supplier_id_);
}
ACE_ASSERT (!CORBA::is_nil (proxysupplier.in ()));
// narrow
this->proxy_supplier_ =
CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow (proxysupplier.in ());
ACE_ASSERT (!CORBA::is_nil (proxy_supplier_.in ()));
this->proxy_supplier_->connect_structured_push_consumer (objref.in ());
// Call subscription_change to inform the supplier that this consumer is available.
CosNotification::EventTypeSeq added (1);
CosNotification::EventTypeSeq removed;
added.length (1);
added[0].domain_name = CORBA::string_dup ("TEST_DOMAIN");
/* We generate a unique Id for the consumer type so that the supplier can distinguish between the consumers.*/
char type[BUFSIZ];
ACE_OS::sprintf (type, "TEST_TYPE_%d", this->proxy_supplier_id_);
added[0].type_name = CORBA::string_dup (type);
this->proxy_supplier_->subscription_change (added, removed);
ACE_DEBUG ((LM_DEBUG, "(%P,%t) Created Consumer %d with %d threads at the ProxySupplier\n", proxy_supplier_id_,
this->proxy_supplier_thread_count_));
}
开发者ID:asdlei00,项目名称:ACE,代码行数:60,代码来源:Consumer.cpp
示例3: INTERNAL
CosNotifyChannelAdmin::ProxySupplier_ptr
TAO_MonitorConsumerAdmin::obtain_notification_push_supplier (
CosNotifyChannelAdmin::ClientType ctype,
CosNotifyChannelAdmin::ProxyID_out proxy_id)
{
// First, make sure we can get down to the real ec type.
TAO_MonitorEventChannel* ec =
dynamic_cast<TAO_MonitorEventChannel*> (this->ec_.get ());
if (ec == 0)
{
throw CORBA::INTERNAL ();
}
// Next, create the push consumer proxy.
CosNotifyChannelAdmin::ProxySupplier_var proxy =
this->TAO_Notify_ConsumerAdmin::obtain_notification_push_supplier (
ctype, proxy_id);
// Next, map the proxy id to the name in the ec.
char name[64];
ACE_OS::sprintf (name, "%d", proxy_id);
ec->map_supplier_proxy (proxy_id, name);
return proxy._retn ();
}
开发者ID:binary42,项目名称:OCI,代码行数:26,代码来源:MonitorConsumerAdmin.cpp
示例4: added
void
Notify_Structured_Push_Consumer::_connect (
CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin)
{
CosNotifyComm::StructuredPushConsumer_var objref = this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier =
consumer_admin->obtain_notification_push_supplier (
CosNotifyChannelAdmin::STRUCTURED_EVENT,
proxy_id_);
this->proxy_ =
CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow (
proxysupplier.in ());
this->proxy_->connect_structured_push_consumer (objref.in ());
CosNotification::EventTypeSeq added (1);
CosNotification::EventTypeSeq removed (1);
added.length (1);
removed.length (1);
added[0].domain_name = CORBA::string_dup ("*");
added[0].type_name = CORBA::string_dup ("examples");
removed[0].domain_name = CORBA::string_dup ("*");
removed[0].type_name = CORBA::string_dup ("*");
this->subscription_change (added, removed);
// give ownership to POA
this->_remove_ref ();
}
开发者ID:asdlei00,项目名称:ACE,代码行数:33,代码来源:Notify_Structured_Push_Consumer.cpp
示例5:
CosNotifyChannelAdmin::ProxySupplier_ptr
TAO_Notify_ConsumerAdmin::obtain_notification_push_supplier_with_qos (CosNotifyChannelAdmin::ClientType ctype,
CosNotifyChannelAdmin::ProxyID_out proxy_id,
const CosNotification::QoSProperties & initial_qos
)
{
CosNotifyChannelAdmin::ProxySupplier_var proxy =
TAO_Notify_PROPERTIES::instance()->builder()->build_proxy (this
, ctype
, proxy_id
, initial_qos);
this->self_change ();
return proxy._retn ();
}
开发者ID:OspreyHub,项目名称:ATCD,代码行数:14,代码来源:ConsumerAdmin.cpp
示例6: properties
void
Notify_Structured_Push_Consumer::_connect (
CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin)
{
#ifdef TEST_QOS_MAX_EVENTS_PER_CONSUMER
CosNotification::QoSProperties properties (8);
properties.length (2);
CORBA::ULong idx = 0;
properties[idx].name = CORBA::string_dup (CosNotification::DiscardPolicy);
properties[idx].value <<= this->CosNotification::FifoOrder;
idx += 1;
properties[idx].name = CORBA::string_dup (CosNotification::MaxEventsPerConsumer);
properties[idx].value <<= 500;
idx += 1;
ACE_OS::printf("Setting %d::%d QoS properties in Admin.\n", (int)idx, (int)properties.length());
consumer_admin->set_qos (properties);
#endif // TEST_QOS_MAX_EVENTS_PER_CONSUMER
CosNotifyComm::StructuredPushConsumer_var objref = this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier =
consumer_admin->obtain_notification_push_supplier (
CosNotifyChannelAdmin::STRUCTURED_EVENT,
proxy_id_);
this->proxy_ =
CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow (
proxysupplier.in ());
this->proxy_->connect_structured_push_consumer (objref.in ());
CosNotification::EventTypeSeq added (1);
CosNotification::EventTypeSeq removed (1);
added.length (1);
removed.length (1);
added[0].domain_name = CORBA::string_dup ("*");
added[0].type_name = CORBA::string_dup ("examples");
removed[0].domain_name = CORBA::string_dup ("*");
removed[0].type_name = CORBA::string_dup ("*");
this->subscription_change (added, removed);
// give ownership to POA
this->_remove_ref ();
}
开发者ID:asdlei00,项目名称:ACE,代码行数:47,代码来源:Notify_Structured_Push_Consumer.cpp
示例7: properties
void
Notify_Structured_Push_Consumer::_connect (
CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin)
{
CosNotifyComm::StructuredPushConsumer_var objref =
this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier =
consumer_admin->obtain_notification_push_supplier (
CosNotifyChannelAdmin::STRUCTURED_EVENT,
proxy_id_);
this->proxy_ =
CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow (
proxysupplier.in ());
CosNotification::QoSProperties properties (2);
properties.length (2);
// The discard policy and admin properties tests already test using
// the MaxQueueLength policy, so we'll use MEPC instead. It should
// make no difference.
// If the blocking timeout is less than CONSUMER_DELAY seconds, then
// we want to ensure that exactly one event is discarded, so we set
// the MEPC to expected_ - 1. If the supplier sends 20, then we expect 19,
// and we set MEPC to 18. The first event will be dispatched at once, but
// will block in the consumer. This will allow the queue in the notify svc
// to fill up to 18. However, the blocking code will timeout before the
// consumer finishes which will cause an event to be discarded. This will
// allow the last event to be queued. Eventually the consumer will unblock
// and receive the remaining events
properties[0].name = CORBA::string_dup (CosNotification::MaxEventsPerConsumer);
if (blocking_timeout_ < CONSUMER_DELAY * 1000 * 1000 * 10)
properties[0].value <<= (CORBA::Long) expected_ - 1;
else
properties[0].value <<= (CORBA::Long) 10;
properties[1].name = CORBA::string_dup (TAO_Notify_Extensions::BlockingPolicy);
properties[1].value <<= this->blocking_timeout_;
this->proxy_->set_qos (properties);
this->proxy_->connect_structured_push_consumer (objref.in ());
// give ownership to POA
this->_remove_ref ();
}
开发者ID:CCJY,项目名称:ATCD,代码行数:46,代码来源:Notify_Structured_Push_Consumer.cpp
示例8:
void
Notify_Push_Consumer::_connect (CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin,
CosNotifyChannelAdmin::EventChannel_ptr)
{
CosNotifyComm::StructuredPushConsumer_var objref =
this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier =
consumer_admin->obtain_notification_push_supplier (
CosNotifyChannelAdmin::STRUCTURED_EVENT,
proxy_id_);
this->proxy_ =
CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow (
proxysupplier.in ());
this->proxy_->connect_structured_push_consumer (objref.in ());
// give ownership to POA
this->_remove_ref ();
}
开发者ID:CCJY,项目名称:ATCD,代码行数:21,代码来源:Notify_Push_Consumer.cpp
示例9:
void
Filter_StructuredPushConsumer::connect (CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin)
{
// Activate the consumer with the default_POA_
CosNotifyComm::StructuredPushConsumer_var objref =
this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier =
consumer_admin->obtain_notification_push_supplier (CosNotifyChannelAdmin::STRUCTURED_EVENT, proxy_supplier_id_);
ACE_ASSERT (!CORBA::is_nil (proxysupplier.in ()));
// narrow
this->proxy_supplier_ =
CosNotifyChannelAdmin::StructuredProxyPushSupplier::
_narrow (proxysupplier.in ());
ACE_ASSERT (!CORBA::is_nil (proxy_supplier_.in ()));
proxy_supplier_->connect_structured_push_consumer (objref.in ());
}
开发者ID:asdlei00,项目名称:ACE,代码行数:21,代码来源:Filter.cpp
示例10: properties
void
Notify_Sequence_Push_Consumer::_connect (
CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin)
{
CosNotifyComm::SequencePushConsumer_var objref =
this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier =
consumer_admin->obtain_notification_push_supplier (
CosNotifyChannelAdmin::SEQUENCE_EVENT,
proxy_id_);
this->proxy_ =
CosNotifyChannelAdmin::SequenceProxyPushSupplier::_narrow (
proxysupplier.in ());
CosNotification::QoSProperties properties (3);
properties.length (3);
properties[0].name = CORBA::string_dup (CosNotification::MaximumBatchSize);
properties[0].value <<= (CORBA::Long) BATCH_SIZE;
properties[1].name = CORBA::string_dup (CosNotification::PacingInterval);
properties[1].value <<= (TimeBase::TimeT) (1000 * 10000); // 1 secs
if (use_ordering_)
{
properties[2].name = CORBA::string_dup (CosNotification::OrderPolicy);
properties[2].value <<= this->order_policy_;
}
else
{
properties.length(2);
}
this->proxy_->set_qos (properties);
this->proxy_->connect_sequence_push_consumer (objref.in ());
// give ownership to POA
this->_remove_ref ();
}
开发者ID:asdlei00,项目名称:ACE,代码行数:38,代码来源:Notify_Sequence_Push_Consumer.cpp
示例11: properties
void
Notify_Sequence_Push_Consumer::_connect (
CosNotifyChannelAdmin::ConsumerAdmin_ptr consumer_admin)
{
CosNotifyComm::SequencePushConsumer_var consumer =
this->_this ();
CosNotifyChannelAdmin::ProxySupplier_var proxysupplier =
consumer_admin->obtain_notification_push_supplier (
CosNotifyChannelAdmin::SEQUENCE_EVENT,
proxy_id_);
this->proxy_ =
CosNotifyChannelAdmin::SequenceProxyPushSupplier::_narrow (
proxysupplier.in ());
CosNotification::QoSProperties properties (4);
properties.length (4);
CORBA::ULong idx = 0;
properties[idx].name = CORBA::string_dup (CosNotification::MaximumBatchSize);
properties[idx].value <<= BATCH_SIZE;
properties[++idx].name = CORBA::string_dup (CosNotification::PacingInterval);
properties[idx].value <<= PACING;
properties[++idx].name = CORBA::string_dup (CosNotification::DiscardPolicy);
properties[idx].value <<= this->discard_policy_;
properties[++idx].name = CORBA::string_dup (CosNotification::MaxEventsPerConsumer);
// We set this equal to the batch size so that we conveniently always receive
// one more batch after the first.
properties[idx].value <<= BATCH_SIZE;
this->proxy_->set_qos (properties);
this->proxy_->connect_sequence_push_consumer (consumer.in ());
// give ownership to POA
this->_remove_ref ();
}
开发者ID:asdlei00,项目名称:ACE,代码行数:36,代码来源:Notify_Sequence_Push_Consumer.cpp
示例12: ecf_name
//.........这里部分代码省略.........
aid,
"TestConsumerAdmin");
try
{
cadmin =
mec->named_new_for_consumers (CosNotifyChannelAdmin::AND_OP,
aid,
"TestConsumerAdmin");
error ("Expected a ConsumerAdmin "
"NotifyMonitoringExt::NameAlreadyUsed exception");
}
catch (const NotifyMonitoringExt::NameAlreadyUsed&)
{
// This is expected.
};
// We should be able to create another one with the same name
cadmin->destroy ();
cadmin =
mec->named_new_for_consumers (CosNotifyChannelAdmin::AND_OP,
aid,
"TestConsumerAdmin");
NotifyMonitoringExt::ConsumerAdmin_var mcadmin =
NotifyMonitoringExt::ConsumerAdmin::_narrow (cadmin.in ());
if (CORBA::is_nil (mcadmin.in ()))
{
error ("Could not narrow the consumer admin");
}
CosNotifyChannelAdmin::ProxySupplier_var supproxy =
mcadmin->obtain_named_notification_push_supplier (
CosNotifyChannelAdmin::STRUCTURED_EVENT,
pid,
"consumer");
try
{
CosNotifyChannelAdmin::ProxySupplier_var fake =
mcadmin->obtain_named_notification_push_supplier (
CosNotifyChannelAdmin::STRUCTURED_EVENT,
pid,
"consumer");
error ("Expected a ProxySupplier "
"NotifyMonitoringExt::NameAlreadyUsed exception");
}
catch (const NotifyMonitoringExt::NameAlreadyUsed&)
{
// This is expected.
}
stat_name =
ecf_name
+ "/"
+ ec_name
+ "/"
+ ACE_CString (NotifyMonitoringExt::EventChannelConsumerCount);
stat = instance->get (stat_name);
if (stat == 0)
{
开发者ID:asdlei00,项目名称:ACE,代码行数:67,代码来源:MonitorControlExt.cpp
示例13: name
//-----------------------------------------------------------------------------
void
Consumer::createConsumer()
{
ACS_TRACE("Consumer::createConsumer");
try
{
// Get ConsumerAdmin object
//CosNotifyChannelAdmin::AdminID adminid;
consumerAdmin_m = notifyChannel_m->new_for_consumers(ifgop_m, adminid);
if(CORBA::is_nil(consumerAdmin_m.in()) == true)
{
CORBAProblemExImpl err = CORBAProblemExImpl(__FILE__,__LINE__,"nc::Consumer::createConsumer");
throw err.getCORBAProblemEx();
}
// get the the proxySupplier (named if possible)
bool isAdminExt = false;
try {
NotifyMonitoringExt::ConsumerAdmin_var consumerAdminExt = NotifyMonitoringExt::ConsumerAdmin::_narrow(consumerAdmin_m);
isAdminExt = (consumerAdminExt != 0);
} catch(...) {}
CosNotifyChannelAdmin::ProxySupplier_var proxySupplier = 0;
if( isAdminExt && (callback_m->services_ != 0) ) {
std::string name(callback_m->services_->getName().c_str());
std::string proxyName(createRandomizedClientName(name));
NotifyMonitoringExt::ConsumerAdmin_var consumerAdminExt = NotifyMonitoringExt::ConsumerAdmin::_narrow(consumerAdmin_m);
while( proxySupplier == 0 ) {
try {
proxySupplier = consumerAdminExt->obtain_named_notification_push_supplier(CosNotifyChannelAdmin::STRUCTURED_EVENT, proxySupplierID, proxyName.c_str());
//ACS_SHORT_LOG((LM_INFO,"Consumer::createConsumer Got named proxy supplier '%s' with proxyID %d", proxyName.c_str(), proxySupplierID));
} catch (NotifyMonitoringExt::NameAlreadyUsed &ex) {
// If the original name is already in use, append "-<tries>" and try again
// until we find a free name
proxyName = createRandomizedClientName(name);
} catch (...) {
// If any unexpected problem appears, try the unnamed version
proxySupplier = consumerAdmin_m->obtain_notification_push_supplier(CosNotifyChannelAdmin::STRUCTURED_EVENT, proxySupplierID);
//ACS_SHORT_LOG((LM_INFO,"Consumer::createConsumer Created unnamed proxy supplier"));
}
}
}
else {
// Just the unnamed version if we don't have the TAO extensions
proxySupplier = consumerAdmin_m->obtain_notification_push_supplier(CosNotifyChannelAdmin::STRUCTURED_EVENT, proxySupplierID);
//ACS_SHORT_LOG((LM_INFO,"Consumer::createConsumer Created unnamed proxy supplier"));
}
if(CORBA::is_nil(proxySupplier.in()) == true)
{
CORBAProblemExImpl err = CORBAProblemExImpl(__FILE__,__LINE__,"nc::Consumer::createConsumer");
throw err.getCORBAProblemEx();
}
//narrow to a STRUCTURED proxy supplier
proxySupplier_m = CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow(proxySupplier.in());
}
catch(CORBAProblemEx)
{
ACS_SHORT_LOG((LM_ERROR,"Consumer::createConsumer failed for the '%s' channel due to a nil pointer!",
channelName_mp));
throw;
}
catch(...)
{
ACS_SHORT_LOG((LM_ERROR,"Consumer::createConsumer failed for the '%s' channel due to some unknown reason!",
channelName_mp));
CORBAProblemExImpl err = CORBAProblemExImpl(__FILE__,__LINE__,"nc::Consumer::createConsumer");
throw err.getCORBAProblemEx();
}
//now the developer must call consumerReady() to receive events.
}
开发者ID:jbarriosc,项目名称:ACS,代码行数:79,代码来源:acsncConsumerImpl.cpp
注:本文中的cosnotifychanneladmin::ProxySupplier_var类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论