本文整理汇总了C++中cosnotifychanneladmin::EventChannel_var::default_consumer_admin方法的典型用法代码示例。如果您正苦于以下问题:C++ EventChannel_var::default_consumer_admin方法的具体用法?C++ EventChannel_var::default_consumer_admin怎么用?C++ EventChannel_var::default_consumer_admin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cosnotifychanneladmin::EventChannel_var
的用法示例。
在下文中一共展示了EventChannel_var::default_consumer_admin方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
bool
IdAssignment::default_consumer_admin_test (CosNotifyChannelAdmin::ChannelID channel_id)
{
CosNotifyChannelAdmin::EventChannel_var ec =
this->notify_factory_->get_event_channel (channel_id);
if (CORBA::is_nil (ec.in ()))
{
ACE_ERROR((LM_ERROR,
" (%P|%t) Unable to find event channel\n"));
return false;
}
CosNotifyChannelAdmin::ConsumerAdmin_var default_consumer_admin =
ec->get_consumeradmin (0);
if (CORBA::is_nil (default_consumer_admin.in()))
{
ACE_ERROR_RETURN ((LM_ERROR,
" (%P|%t) Unable to create default consumer admin\n"),
false);
}
CosNotifyChannelAdmin::ConsumerAdmin_var def = ec->default_consumer_admin ();
if (CORBA::is_nil (default_consumer_admin.in()))
{
ACE_ERROR_RETURN ((LM_ERROR,
" (%P|%t) Unable to get default consumer admin\n"),
false);
}
if (! default_consumer_admin->_is_equivalent(def.in ()))
{
ACE_ERROR_RETURN ((LM_ERROR,
" (%P|%t) failed for default consumer admin checking\n"),
false);
}
if (TAO_debug_level)
ACE_DEBUG ((LM_DEBUG,
"passed default consumer admin test.\n"));
return true;
}
示例2: ACE_TMAIN
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
int status = 0;
try
{
Consumer_Client client;
status = client.init (argc, argv);
if (status == 0)
{
CosNotifyChannelAdmin::EventChannel_var ec =
client.create_event_channel ("MyEventChannel", 1);
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
if (CORBA::is_nil (sig.in ()))
{
ACE_ERROR_RETURN ((LM_ERROR,
"Object reference <%s> is nil\n",
ior),
1);
}
CosNotifyChannelAdmin::ConsumerAdmin_var admin =
ec->default_consumer_admin();
CosNotifyFilter::Filter_var filter =
create_proxyFilter (ec.in());
if (!CORBA::is_nil (admin.in ()))
{
create_consumers (admin.in (), &client, filter.in());
// Tell the supplier to go
sig->go ();
ACE_Time_Value tv(10, 0);
client.ORB_run(tv);
ACE_DEBUG((LM_DEBUG, "Consumer done.\n"));
sig->done ();
ACE_DEBUG((LM_DEBUG, "Expected %d message(s) and received %d message(s).\n",
expect_fail == 1 ? 0 : 1, consumer_1->messages_received()));
if (1 == expect_fail)
status = consumer_1->messages_received() == 0 ? 0 : 1;
else
status = consumer_1->messages_received() == 1 ? 0 : 1;
ACE_DEBUG((LM_DEBUG, "Test status is %s.\n", status == 1 ? "fail" : "pass"));
}
}
}
catch (const CORBA::Exception& e)
{
e._tao_print_exception ("Error: Consumer exception: ");
status = 1;
}
return status;
}
示例3: main
//.........这里部分代码省略.........
CosEventComm::PushConsumer::_narrow(consumer_obj);
//
// Recoge la referencia al canal
//
// readChannelIOR();
// obj = orb->string_to_object(ChannelIOR);
CosNaming::NamingContext_var naming_context_notif = NULL;
CosNaming::Name name_notif(2);
name_notif.length (2);
name_notif[0].id = CORBA::string_dup ("MyNotif");
name_notif[0].kind = CORBA::string_dup ("");
name_notif[1].id = CORBA::string_dup ("channel");
name_notif[1].kind = CORBA::string_dup ("");
obj = naming_context->resolve(name_notif);
CosNotifyChannelAdmin::EventChannel_var channel;
channel = CosNotifyChannelAdmin::EventChannel::_narrow(obj);
if (CORBA::is_nil(channel)) {
cerr << "[consumer] ERROR: canal nulo " << endl;
return -1;
}
// cerr << "[consumer] ChannelId " << channel->get_channelID() << endl;
//
// Obtenemos el manager
//
CosNotifyChannelAdmin::ConsumerAdmin_var consumerAdmin;
CosNotifyChannelAdmin::AdminID adminid;
try{
consumerAdmin = channel->default_consumer_admin();
}
catch(CORBA::Exception &ce){
fprintf(stderr,"(%s)%i CORBA::Exception - %s\n",
__FILE__,__LINE__,ce._name());
}
catch(...){
fprintf(stderr,"(%s)%i - Unexpected exception!",
__FILE__,__LINE__);
}
//
// Obtenemos el proxy
//
CosNotifyChannelAdmin::ProxyPushSupplier_var pushSupplier;
CosNotifyChannelAdmin::ProxyID proxy_id;
CosNotifyChannelAdmin::ClientType ctype = CosNotifyChannelAdmin::ANY_EVENT;
try{
CosNotifyChannelAdmin::ProxySupplier_var obj =
consumerAdmin->obtain_notification_push_supplier(ctype, proxy_id);
pushSupplier = CosNotifyChannelAdmin::ProxyPushSupplier::_narrow(obj);
// Conecta proxy
pushSupplier->connect_any_push_consumer(consumer);
}
catch(CosEventChannelAdmin::AlreadyConnected &ac){
fprintf(stderr,"(%s)%i CosEventChannelAdmin::AlreadyConnected\n",
__FILE__,__LINE__);
}
示例4: main
//.........这里部分代码省略.........
// 0,0,0));
// initial_qos[6].name = CORBA::string_dup("Timeout");
// initial_qos[6].value <<= (TimeBase::TimeT)TIDorb::core::util::Time::currentTimeMillis();
// initial_qos[7].name = CORBA::string_dup("StartTimeSupported");
// initial_qos[7].value <<= (CORBA::Boolean) 0;
// initial_qos[8].name = CORBA::string_dup("StopTimeSupported");
// initial_qos[8].value <<= (CORBA::Boolean) 1;
//
// Politicas de QoS no soportadas
//
// initial_qos[0].name = CORBA::string_dup("DiscardPolicy");
// initial_qos[0].value <<= CosNotification::AnyOrder; // Any Fifo Priority Deadline
// initial_qos[7].name = CORBA::string_dup("MaximumBatchSize");
// initial_qos[7].value <<= (CORBA::Long) 20;
// initial_qos[0].name = CORBA::string_dup("PacingInterval");
// initial_qos[0].value <<= (TimeBase::TimeT)TIDorb::core::util::Time::currentTimeMillis();
// initial_qos[9].name = CORBA::string_dup("MaxEventsPerConsumer");
// initial_qos[9].value <<= (CORBA::Long) 20;
try {
// Crear el canal
channel = factory->get_event_channel(0);
// for(int i=0; i < 10; i++){
// channelv[i] = factory->create_channel(initial_qos, initial_admin, idv[i]);
// }
} catch (CosNotifyChannelAdmin::ChannelNotFound &ex) {
cerr << "[server_consumer] CosNotifyChannelAdmin::ChannelNotFound: " << ex._name();
return -1;
}
/**************************************************************************/
/* OBTENEMOS EL CONSUMERADMIN POR DEFECTO */
/**************************************************************************/
CosNotifyChannelAdmin::ConsumerAdmin_ptr consumerAdmin;
consumerAdmin = channel->default_consumer_admin();
//Metemos los filtros en el consumer admin
CosNotifyFilter::Filter* filter_II = create_filter(channel,"GSyC","test","$domain_name != 'GSyC'");
//consumerAdmin->add_filter(filter_II);
//CosNotifyFilter::Filter* filter_III = create_filter(channel,"GSyC","test","$.remainder_of_boy.campo_uno != 1");
//consumerAdmin->add_filter(filter_III);
/**************************************************************************/
/* OBTENEMOS EL PROXYSUPPLIER APARTIR DEL CONSUMERADMIN */
/**************************************************************************/
//TODO_MORFEO: add new filters
CosNotifyChannelAdmin::ProxySupplier_ptr proxySupplier;
CosNotifyChannelAdmin::ProxyID proxySupplierID = 1;
proxySupplier =
consumerAdmin->obtain_notification_push_supplier(CosNotifyChannelAdmin::ANY_EVENT,
proxySupplierID);
/**************************************************************************/
/* OBTENEMOS EL PROXYPUSHSUPPLIER APARTIR DEL CONSUMERADMIN */
/**************************************************************************/
CosNotifyChannelAdmin::StructuredProxyPushSupplier_ptr proxyPushSupplier;
proxyPushSupplier = CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow(proxySupplier);
/**************************************************************************/
/* INSTANCIAMOS LOS PROXYS Y LOS ACTIVAMOS EN EL POA */
/**************************************************************************/
my_push_consumer * my_consumer = new my_push_consumer(orb_ptr,proxyPushSupplier);
PortableServer::ObjectId_ptr consumer_objectID = PortableServer::string_to_ObjectId("My_Consumer:1.0");
consumerPOA->activate_object_with_id(*consumer_objectID,my_consumer);
poa_manager->activate();
CORBA::Object_ptr obj_consumer = consumerPOA->id_to_reference(*consumer_objectID);
CosNotifyComm::StructuredPushConsumer_ptr my_pushConsumer = CosNotifyComm::StructuredPushConsumer::_narrow(obj_consumer);
/***********************************************************************/
/* CONECTAMOS EL PUSHSUPPLIER Y EL PUSHCONSUMER */
/***********************************************************************/
proxyPushSupplier->connect_structured_push_consumer(my_pushConsumer);
orb_ptr->run();
}
catch (CORBA::Exception & e)
{
cerr<<"[Test_Filter] unknown error"<< typeid(e).name() << e._name();
return -1;
}
}