int server() { printf("Give me the printer Number : 0 or 1"); int no; scanf("%d",&no); char buffer[256] = { '\0' }; // Create a local endpoint. if(no==0) sprintf(buffer, "tcp://58.198.176.121:5555"); else sprintf(buffer, "tcp://58.198.176.121:5557"); Theron::EndPoint endPoint("server", buffer); // Connect to the remote endpoint. sprintf(buffer, "tcp://58.198.176.121:5556"); if (!endPoint.Connect(buffer)) { printf("ERROR: Connection failed - check networking is enabled.\n"); return 1; } // The framework and receiver are tied to the endpoint. if(no==0) { //Theron::Receiver receiver(endPoint, "receiver"); Theron::Framework framework(endPoint); Printer printer(no,framework, "printer"); Printer1 printer1(no,framework, "printer1"); //receiver.Wait(); while(1); } else { Theron::Receiver receiver(endPoint, "receiver1"); Theron::Framework framework(endPoint); Printer printer1(no,framework,"printer"); receiver.Wait(); } }
int main(int argc, char* argv[]) { global_program_name.setValue2( argv[0] ); sorted_arguments = (InputArgument**) malloc( argc * sizeof(InputArgument*) ); try { for ( int index = 0; index < argc; ++index ) all_arguments.push_back( new InputArgument(index, argv[index]) ); assert(argc >= 2); InputArgument input_count(1, argv[1]); read_arguments( input_count.valueToUll() ); std::thread printer1( print_arguments_1, 0 ); std::thread sorter( sort_arguments ); printer1.join(); sorter.join(); std::thread printer2( print_arguments_2 ); printer2.join(); delete_arguments(); return 0; } catch(std::exception& exc) { std::cerr << "Exception: " << exc.what() << std::endl; return 1; } }