void test_connect (ACE_Reactor &reactor, ACE_INET_Addr *addresses, ACE_Synch_Options &synch_options, int complete_nonblocking_connections) { CONNECTOR connector (&reactor); int i = 0; int completion_counter = 0; Svc_Handler::Connection_Status *connection_status = new Svc_Handler::Connection_Status[number_of_connections]; Svc_Handler **svc_handlers = new Svc_Handler *[number_of_connections]; for (i = 0; i < number_of_connections; ++i) { svc_handlers[i] = new Svc_Handler; svc_handlers[i]->connection_status (connection_status[i], completion_counter); } connector.connect_n (number_of_connections, svc_handlers, addresses, 0, synch_options); if (!synch_options[ACE_Synch_Options::USE_REACTOR]) ACE_ASSERT (completion_counter == number_of_connections); if (complete_nonblocking_connections) { while (completion_counter != number_of_connections) { connector.reactor ()->handle_events (); } } connector.close (); for (i = 0; i < number_of_connections; ++i) { ACE_TCHAR buffer[1024]; addresses[i].addr_to_string (buffer, sizeof buffer / sizeof (ACE_TCHAR), 1); ACE_DEBUG ((LM_DEBUG, "Connection to %s %s\n", buffer, connection_status[i] == Svc_Handler::SUCCEEDED ? "succeeded" : "failed")); if (connection_status[i] == Svc_Handler::SUCCEEDED) { svc_handlers[i]->close (); } } delete[] svc_handlers; delete[] connection_status; }