int run_main (int argc, ACE_TCHAR *argv[]) { ACE_START_TEST (ACE_TEXT ("Thread_Pool_Reactor_Test")); parse_arg (argc, argv); // Changed the default ACE_TP_Reactor sr; ACE_Reactor new_reactor (&sr); ACE_Reactor::instance (&new_reactor); ACCEPTOR acceptor; ACE_INET_Addr accept_addr (rendezvous); if (acceptor.open (accept_addr) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("open")), 1); ACE_DEBUG((LM_DEBUG, ACE_TEXT ("(%t) Spawning %d server threads...\n"), svr_thrno)); ACE_Thread_Manager::instance ()->spawn_n (svr_thrno, svr_worker); ACE_Thread_Manager::instance ()->spawn (worker); ACE_Thread_Manager::instance ()->wait (); ACE_END_TEST; return 0; }
// Listing 1 code/ch16 int ACE_TMAIN (int, ACE_TCHAR *[]) { ACE_TP_Reactor sr; ACE_Reactor new_reactor (&sr); ACE_Reactor::instance (&new_reactor); ACCEPTOR acceptor; ACE_INET_Addr accept_addr (rendezvous); if (acceptor.open (accept_addr) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("open")), 1); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Spawning %d server threads...\n"), svr_thrno)); ServerTP serverTP; serverTP.activate (THR_NEW_LWP | THR_JOINABLE, ACE_Utils::truncate_cast<int> (svr_thrno)); Client client; client.activate (); ACE_Thread_Manager::instance ()->wait (); return 0; }
int run_main (int argc, ACE_TCHAR *argv[]) { ACE_START_TEST (ACE_TEXT ("Thread_Pool_Reactor_SSL_Test")); ACE_SSL_Context *context = ACE_SSL_Context::instance (); // Note - the next two strings are naked on purpose... the arguments to // the ACE_SSL_Context methods are const char *, not ACE_TCHAR *. context->certificate ("dummy.pem", SSL_FILETYPE_PEM); context->private_key ("key.pem", SSL_FILETYPE_PEM); parse_arg (argc, argv); // Changed the default ACE_TP_Reactor sr; ACE_Reactor new_reactor (&sr); ACE_Reactor::instance (&new_reactor); ACCEPTOR acceptor; ACE_INET_Addr accept_addr (rendezvous); if (acceptor.open (accept_addr) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("open")), 1); ACE_DEBUG((LM_DEBUG, ACE_TEXT ("(%t) Spawning %d server threads...\n"), svr_thrno)); ACE_Thread_Manager::instance ()->spawn_n (svr_thrno, svr_worker); ACE_Thread_Manager::instance ()->spawn (worker); ACE_Thread_Manager::instance ()->wait (); ACE_END_TEST; return 0; }
int main (int argc, char *argv[]) { // user may provide a host@port string and a hosts_file std::string key = argc > 1 ? argv[1] : DEFAULT_KEY; std::string hosts_file = argc > 2 ? argv[2] : ""; std::string server_host; std::string port_str; // split the host@port Madara::split_key (key, server_host, port_str); // create a u_short port for the acceptor u_short server_port = argc > 1 ? ACE_OS::atoi (port_str.c_str ()) : DEFAULT_PORT; Madara::BrokerContext context; // create a reactor with a thread pool ACE_TP_Reactor reactor; ACE_Reactor new_reactor (&reactor); ACE_Reactor::instance (&new_reactor); // create the handlers ClientAcceptor peer_acceptor (context); BrokerTimeoutHandler timeouts (context); ActiveTimer timer; // for the scheduled timer ACE_Time_Value initial (0); ACE_Time_Value interval (2,0); int arg1 = 0; ACE_Reactor::instance ()->schedule_timer (&timeouts, &arg1, ACE_Time_Value::zero, interval); // if no port is provided, then bind to the first available if (port_str == "") Madara::bindToFirstAvailableBrokerPort (peer_acceptor, context); else if (peer_acceptor.open (ACE_INET_Addr (server_port), ACE_Reactor::instance ()) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1); server_port = atoi (context.getPort ().c_str ()); // signal handler for clean exit ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT); std::cerr << "Dumping context\n\n"; context.write (std::cerr); ACE_DEBUG ((LM_DEBUG, "(%P|%t) starting up broker agent (port %d)\n", server_port)); while (!Madara::finished_) reactor.handle_events (); ACE_DEBUG ((LM_DEBUG, "(%P|%t) shutting down swarm agent\n")); std::cerr << "Dumping context\n\n"; context.write (std::cerr); /* std::ofstream output ("test_results.txt"); Madara::BrokerContext context; Madara::Deployment::Candidate deployment; ACE_hrtime_t start, end; unsigned int total; int i = 20; int count = 20; srand (time (NULL)); for (i = 20; i <= 200; i += count) { std::cout << "Testing deployment of size " << i << std::endl; testDeploymentSize (i, std::cerr); } */ return 0; }