Esempio n. 1
0
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();

	    }


}
Esempio n. 2
0
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;
	}
}