void TAO_Notify_Tests_EventChannel_Command::handle_destroy (void) { ACE_DEBUG ((LM_DEBUG, "Destroying event channel %s\n", this->name_.c_str ())); CosNotifyChannelAdmin::EventChannel_var ec; LOOKUP_MANAGER->resolve (ec, this->name_.c_str ()); ec->destroy (); }
void IdAssignment::destroy_ec(CosNotifyChannelAdmin::ChannelID id) { CosNotifyChannelAdmin::EventChannel_var ec = this->notify_factory_->get_event_channel (id); if (CORBA::is_nil (ec.in())) { ACE_ERROR((LM_ERROR, " (%P|%t) Unable to find event channel\n")); return; } ec->destroy (); }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_Auto_Ptr< sig_i > sig_impl; try { Supplier_Client client; int status = client.init (argc, argv); ACE_UNUSED_ARG(status); ACE_ASSERT(status == 0); CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel ("MyEventChannel", 0); CosNotification::QoSProperties qos (1); qos.length (1); qos[0].name = CORBA::string_dup (CosNotification::OrderPolicy); qos[0].value <<= order_policy; ec->set_qos (qos); CORBA::ORB_ptr orb = client.orb (); sig_impl.reset( new sig_i( orb ) ); sig_var sig = sig_impl->_this (); CORBA::String_var ior = orb->object_to_string (sig.in ()); if (ior_output_file != 0) { FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); if (output_file == 0) ACE_ERROR_RETURN ((LM_ERROR, "Cannot open output file %s for " "writing IOR: %C", ior_output_file, ior.in ()), 1); ACE_OS::fprintf (output_file, "%s", ior.in ()); ACE_OS::fclose (output_file); } CosNotifyChannelAdmin::SupplierAdmin_var admin = create_supplieradmin (ec.in ()); ACE_ASSERT(!CORBA::is_nil (admin.in ())); create_suppliers (admin.in (), client.root_poa ()); sig_impl->wait_for_startup(); ACE_DEBUG((LM_DEBUG, "1 supplier sending %d events...\n", num_events)); for (int i = 0; i < num_events / BATCH_SIZE; ++i) { ACE_DEBUG((LM_DEBUG, "+")); SendBatch (i); } ACE_DEBUG((LM_DEBUG, "\nSupplier sent %d events.\n", num_events)); sig_impl->wait_for_completion(); ACE_OS::unlink (ior_output_file); supplier_1->disconnect(); ec->destroy(); return 0; } catch (const CORBA::Exception& e) { e._tao_print_exception ("Error: "); } return 1; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_Auto_Ptr< sig_i > sig_impl; int status = 0; try { Supplier_Client client; status = client.init (argc, argv); if (status == 0) { CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel ("MyEventChannel", 0); CORBA::ORB_ptr orb = client.orb (); sig_impl.reset( new sig_i( orb ) ); sig_var sig = sig_impl->_this (); CORBA::String_var ior = orb->object_to_string (sig.in ()); // If the ior_output_file exists, output the ior to it if (ior_output_file != 0) { FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); if (output_file == 0) ACE_ERROR_RETURN ((LM_ERROR, "Cannot open output file %s for " "writing IOR: %C", ior_output_file, ior.in ()), 1); ACE_OS::fprintf (output_file, "%s", ior.in ()); ACE_OS::fclose (output_file); } CosNotifyChannelAdmin::SupplierAdmin_var admin = create_supplieradmin (ec.in ()); if (!CORBA::is_nil (admin.in ())) { create_suppliers(admin.in (), client.root_poa ()); sig_impl->wait_for_startup(); ACE_DEBUG((LM_DEBUG, " 1 supplier sending %d batches of %d events...\n", num_batches, PER_BATCH)); for (int i = 0; i < num_batches; ++i) { ACE_DEBUG((LM_DEBUG, "+")); SendEvents (i); } ACE_DEBUG((LM_DEBUG, "\nSupplier waiting for consumer completion...\n")); sig_impl->wait_for_completion(); ACE_DEBUG((LM_DEBUG, "\nSupplier finished.\n")); ACE_OS::unlink (ior_output_file); ec->destroy(); } } } catch (const CORBA::Exception& e) { e._tao_print_exception ("Error: Supplier exception: "); status = 1; } return status; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { int status = 0; ACE_Auto_Ptr< sig_i > sig_impl; try { Supplier_Client client; status = client.init (argc, argv); if (status == 0) { CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel ("MyEventChannel", 0); if (use_deadline_ordering) { CosNotification::QoSProperties qos (1); qos.length (1); qos[0].name = CORBA::string_dup (CosNotification::OrderPolicy); qos[0].value <<= (CORBA::Short)CosNotification::DeadlineOrder; ec->set_qos (qos); } sig_impl.reset( new sig_i( client.orb() ) ); sig_var sig = sig_impl->_this (); // If the ior_output_file exists, output the ior to it if (ior_output_file != 0) { CORBA::String_var ior = client.orb ()->object_to_string (sig.in ()); FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); ACE_ASSERT (output_file != 0); ACE_OS::fprintf (output_file, "%s", ior.in ()); ACE_OS::fclose (output_file); } CosNotifyChannelAdmin::SupplierAdmin_var admin = create_supplieradmin (ec.in ()); ACE_ASSERT(!CORBA::is_nil (admin.in ())); create_suppliers (admin.in (), client.root_poa ()); sig_impl->wait_for_startup(); ACE_DEBUG((LM_DEBUG, "1 supplier sending %d events...\n", num_events)); for (int i = 0; i < num_events; ++i) { ACE_DEBUG((LM_DEBUG, "+")); SendEvent (i + 1); } ACE_DEBUG((LM_DEBUG, "\nSupplier sent %d events.\n", num_events)); sig_impl->wait_for_completion(); ACE_OS::unlink (ior_output_file); supplier_1->disconnect(); ec->destroy(); } } catch (const CORBA::Exception& e) { e._tao_print_exception ("Error: "); status = 1; } return status; }
int ACE_TMAIN (int argc, ACE_TCHAR* argv[]) { int status = 0; try { Supplier_Client client; status = client.init (argc, argv); if (status == 0) { CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel ("MyEventChannel", 0); CORBA::ORB_ptr orb = client.orb (); sig_i* sig_impl; ACE_NEW_RETURN (sig_impl, sig_i (orb), 1); PortableServer::ServantBase_var owner_transfer(sig_impl); CORBA::Object_var object = orb->resolve_initial_references ("RootPOA"); PortableServer::POA_var root_poa = PortableServer::POA::_narrow (object.in ()); PortableServer::ObjectId_var id = root_poa->activate_object (sig_impl); object = root_poa->id_to_reference (id.in ()); sig_var sig = sig::_narrow (object.in ()); CORBA::String_var ior = orb->object_to_string (sig.in ()); // Output the IOR to the <ior_output_file> FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); if (output_file != 0) { ACE_OS::fprintf (output_file, "%s", ior.in ()); ACE_OS::fclose (output_file); } CosNotifyChannelAdmin::SupplierAdmin_var admin = create_supplieradmin (ec.in ()); if (!CORBA::is_nil (admin.in ())) { create_suppliers (admin.in (), client.root_poa ()); sig_impl->wait_for_startup(); ACE_DEBUG ((LM_DEBUG, "1 supplier sending %d events...\n", max_events)); for (int i = 0; i < max_events; ++i) { ACE_DEBUG ((LM_DEBUG, "+")); SendEvent (i); } ACE_DEBUG ((LM_DEBUG, "\nSupplier sent %d events.\n", max_events)); ACE_OS::unlink (ior_output_file); supplier_1->disconnect (); ec->destroy (); } } } catch (const CORBA::Exception& e) { e._tao_print_exception ("Supplier Error: "); status = 1; } return status; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_Auto_Ptr< sig_i > sig_impl; try { Notify_Test_Client client; int status = client.init (argc, argv); ACE_UNUSED_ARG(status); ACE_ASSERT(status == 0); CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel ("MyEventChannel", 0); ACE_ASSERT(! CORBA::is_nil(ec.in())); CORBA::ORB_ptr orb = client.orb (); sig_impl.reset( new sig_i( orb ) ); sig_var sig = sig_impl->_this (); CosNotifyChannelAdmin::SupplierAdmin_var admin = create_supplieradmin (ec.in ()); ACE_ASSERT(! CORBA::is_nil (admin.in ())); create_supplier (admin.in (), client.root_poa ()); if (ior_file != 0) { CORBA::String_var ior = client.orb ()->object_to_string (sig.in ()); FILE *output_file= ACE_OS::fopen (ACE_TEXT_ALWAYS_CHAR(ior_file), "w"); ACE_ASSERT (output_file != 0); ACE_OS::fprintf (output_file, "%s", ior.in ()); ACE_OS::fclose (output_file); } ACE_DEBUG((LM_DEBUG, "Supplier ready...\n")); sig_impl->wait_for_startup(); ACE_DEBUG((LM_DEBUG, "Supplier sending %d events...\n", num_events)); for (int i = 0; i < num_events; ++i) { ACE_DEBUG((LM_DEBUG, "+")); send_event (i); } ACE_DEBUG((LM_DEBUG, "\nSupplier sent %d events.\n", num_events)); sig_impl->wait_for_completion(); ACE_OS::unlink (ior_file); ec->destroy(); return 0; } catch (const CORBA::Exception& e) { e._tao_print_exception ("Error: Supplier: "); } return 1; }
int ACE_TMAIN (int argc, ACE_TCHAR* argv[]) { int status = 0; ACE_Auto_Ptr<sig_i> sig_impl; try { Supplier_Client client; ACE_Argv_Type_Converter argcon (argc, argv); status = client.init (argcon.get_argc (), argcon.get_TCHAR_argv ()); if (status == 0) { CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel ("MyEventChannel", 0); sig_impl.reset (new sig_i (client.orb ())); sig_var sig = sig_impl->_this (); // If the ior_output_file exists, output the ior to it if (ior_output_file != 0) { CORBA::String_var ior = client.orb ()->object_to_string (sig.in ()); FILE *output_file= ACE_OS::fopen (ior_output_file, ACE_TEXT ("w")); ACE_ASSERT (output_file != 0); ACE_OS::fprintf (output_file, "%s", ior.in ()); ACE_OS::fclose (output_file); } CosNotifyChannelAdmin::SupplierAdmin_var admin = create_supplieradmin (ec.in ()); ACE_ASSERT (!CORBA::is_nil (admin.in ())); create_suppliers (admin.in (), client.root_poa ()); sig_impl->wait_for_startup (); // If this is changed, you should update max_events // found in Notify_Push_Consumer.cpp int batch_size = 4; int num_events = 80 / batch_size; ACE_DEBUG ((LM_DEBUG, "1 supplier sending %d batches of %d events...\n", num_events, batch_size)); CosNotification::EventBatch events; events.length(batch_size); for (int i = 0; i < num_events; ++i) { supplier_1->send_events (events); } ACE_DEBUG ((LM_DEBUG, "\nSupplier sent %d events.\n", num_events)); sig_impl->wait_for_completion (); ACE_OS::unlink (ior_output_file); supplier_1->disconnect (); ec->destroy (); } } catch (const CORBA::Exception& e) { e._tao_print_exception ("Error: "); status = 1; } return status; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { int status = 0; try { Consumer_Client client; status = client.init (argc, argv); if (status != 0) { ACE_ERROR_RETURN ((LM_ERROR, "Error: Client init failed.\n"), 1); } CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel ("MyEventChannel", 0); #ifdef TEST_QOS_MAX_QUEUE_LENGTH ACE_OS::printf ("%s: setting max queue length to 1000\n", argv[0]); CosNotification::AdminProperties properties(1); properties.length(1); properties[0].name = CORBA::string_dup (CosNotification::MaxQueueLength); properties[0].value <<= 1000; ec->set_admin(properties); #endif //TEST_QOS_MAX_QUEUE_LENGTH CORBA::ORB_ptr orb = client.orb (); CORBA::Object_var object = orb->string_to_object (ior); MonitorTestInterface_var sig = MonitorTestInterface::_narrow (object.in ()); if (CORBA::is_nil (sig.in ())) { ACE_ERROR_RETURN ((LM_ERROR, "Error: Narrow failed.\n"), 1); } CosNotifyChannelAdmin::ConsumerAdmin_var admin = create_consumeradmin (ec.in ()); if (CORBA::is_nil (admin.in ())) { ACE_ERROR_RETURN ((LM_ERROR, "Error: nil ConsumerAdmin.\n"), 1); } create_consumers (admin.in (), &client); sig->running (MonitorTestInterface::Consumer); ACE_DEBUG ((LM_DEBUG, "\nConsumer waiting for events...\n")); FILE* ready_file = ACE_OS::fopen (ACE_TEXT_ALWAYS_CHAR(ready_output_file), "w"); if (ready_file == 0) { ACE_ERROR_RETURN ((LM_ERROR, "Cannot open ready file for writing\n"), 1); } ACE_OS::fprintf (ready_file, "ready\n"); ACE_OS::fclose (ready_file); client.ORB_run (); #ifdef PAUSE_ON_EXIT _cputs( "All events received. Still connected.\n"); _cputs( "Hit a key to exit consumer: " ); _getch(); #endif // PAUSE_ON_EXIT ACE_DEBUG ((LM_DEBUG, "Consumer done.\n")); consumer_1->disconnect (); ec->destroy (); sig->finished (MonitorTestInterface::Consumer); } catch (const CORBA::Exception& e) { e._tao_print_exception ("Consumer Error: "); status = 1; } return status; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { int status = 0; ACE_Auto_Ptr< sig_i > sig_impl; try { Supplier_Client client; status = client.init (argc, argv); if (status == 0) { static const char* ec_name = "MyEventChannel"; CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel (ec_name, 0); static const int max = 20; int count = 0; while(ACE_OS::access(ACE_TEXT_ALWAYS_CHAR(notify2ior), R_OK) == -1 && count < max) { ACE_OS::sleep (1); count++; } if (count >= max) { ACE_ERROR_RETURN ((LM_ERROR, "ERROR: Timed out waiting for the " "second notify service\n"), 1); } ACE_OS::sleep (2); // Due to the way that connections are handled, we need to // perform the new event channel creation twice to flush out // the connection to the first notification service try { ec = client.create_event_channel (ec_name, 0); } catch (const CORBA::TRANSIENT&) { } catch (const CORBA::COMM_FAILURE&) { } ec = client.create_event_channel (ec_name, 0); CORBA::ORB_ptr orb = client.orb (); // Activate the signaler with the POA sig_impl.reset( new sig_i( orb ) ); sig_var sig = sig_impl->_this (); CORBA::String_var ior = orb->object_to_string (sig.in ()); // If the ior_output_file exists, output the ior to it if (ior_output_file != 0) { FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); if (output_file == 0) ACE_ERROR_RETURN ((LM_ERROR, "Cannot open output file %s for " "writing IOR: %C", ior_output_file, ior.in ()), 1); ACE_OS::fprintf (output_file, "%s", ior.in ()); ACE_OS::fclose (output_file); } CosNotifyChannelAdmin::SupplierAdmin_var admin = create_supplieradmin (ec.in ()); if (!CORBA::is_nil (admin.in ())) { create_suppliers (admin.in (), client.root_poa ()); sig_impl->wait_for_startup(); ACE_DEBUG((LM_DEBUG, "1 supplier sending %d events...\n", max_events)); for (int i = 0; i < max_events; ++i) { ACE_DEBUG((LM_DEBUG, "+")); SendEvent (i); } ACE_DEBUG((LM_DEBUG, "\nSupplier sent %d events.\n", max_events)); sig_impl->wait_for_completion(); ACE_OS::unlink (ior_output_file); supplier_1->disconnect(); ec->destroy(); } } } catch (const CORBA::Exception& e) { e._tao_print_exception ("Error: "); status = 1; } return status; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_Auto_Ptr< sig_i > sig_impl; try { Consumer_Client client; int status = client.init (argc, argv); ACE_UNUSED_ARG(status); ACE_ASSERT(status == 0); CosNotifyChannelAdmin::EventChannel_var ec = client.create_event_channel ("MyEventChannel", 0); CORBA::ORB_ptr orb = client.orb (); sig_impl.reset( new sig_i( orb ) ); sig_var sig = sig_impl->_this (); CORBA::String_var ior = orb->object_to_string (sig.in ()); if (ior_output_file != 0) { FILE *output_file= ACE_OS::fopen (ior_output_file, "w"); if (output_file == 0) ACE_ERROR_RETURN ((LM_ERROR, "Cannot open output file %s for " "writing IOR: %C", ior_output_file, ior.in ()), 1); ACE_OS::fprintf (output_file, "%s", ior.in ()); ACE_OS::fclose (output_file); } CosNotifyChannelAdmin::SupplierAdmin_var admin = create_supplieradmin (ec.in ()); ACE_ASSERT(!CORBA::is_nil (admin.in ())); create_suppliers (admin.in (), &client); sig_impl->wait_for_startup(); ACE_DEBUG((LM_DEBUG, "%i supplier(s) sending %d events...\n", supplier_count, event_count)); for (int i = 0; i < event_count; ++i) { ACE_DEBUG((LM_DEBUG, "+")); SendEvent (i); } ACE_DEBUG((LM_DEBUG, "\nEach Supplier sent %d events.\n", event_count)); sig_impl->wait_for_completion(); ACE_OS::unlink (ior_output_file); disconnect_suppliers(); ec->destroy(); return 0; } catch (const CORBA::Exception& e) { e._tao_print_exception ("Error: "); } return 1; }