text: // client.cpp,v 1.5 2001/09/18 00:06:06 irfan Exp
  
  #include "ace/Get_Opt.h"
  #include "testC.h"
  #include "tao/RTCORBA/RTCORBA.h"
  #include "../check_supported_priorities.cpp"
  
  ACE_RCSID(Thread_Pool, client, "client.cpp,v 1.5 2001/09/18 00:06:06 irfan Exp")
  
  const char *ior = "file://ior_1";
  int iterations = 6;
  int shutdown_server = 0;
  
  int
  parse_args (int argc, char *argv[])
  {
    ACE_Get_Opt get_opts (argc, argv, "xk:i:");
    int c;
  
    while ((c = get_opts ()) != -1)
      switch (c)
        {
        case 'x':
          shutdown_server = 1;
          break;
  
        case 'k':
          ior = get_opts.optarg;
          break;
  
        case 'i':
          iterations = ACE_OS::atoi (get_opts.optarg);
          break;
  
        case '?':
        default:
          ACE_ERROR_RETURN ((LM_ERROR,
                             "usage:  %s "
                             "-k <ior> "
                             "-i <iterations> "
                             "-x [shutdown server] "
                             "\n",
                             argv [0]),
                            -1);
        }
  
    // Indicates sucessful parsing of the command line
    return 0;
  }
  
  int
  main (int argc, char *argv[])
  {
    // Make sure we can support multiple priorities that are required
    // for this test.
    check_supported_priorities ();
  
    ACE_TRY_NEW_ENV
      {
        CORBA::ORB_var orb =
          CORBA::ORB_init (argc, argv, "", ACE_TRY_ENV);
        ACE_TRY_CHECK;
  
        int result =
          parse_args (argc, argv);
        if (result != 0)
        return result;
  
        CORBA::Object_var object =
          orb->string_to_object (ior, ACE_TRY_ENV);
        ACE_TRY_CHECK;
  
        test_var test =
          test::_narrow (object.in (), ACE_TRY_ENV);
        ACE_TRY_CHECK;
  
        pid_t pid =
          ACE_OS::getpid ();
  
        for (int i = 0; i != iterations; ++i)
          {
            CORBA::Long r =
              test->method (pid,
                            i,
                            ACE_TRY_ENV);
            ACE_TRY_CHECK;
  
            ACE_ASSERT (r == i);
            /// Assert disappears on with optimizations on.
            ACE_UNUSED_ARG (r);
          }
  
        if (shutdown_server)
          {
            test->shutdown (ACE_TRY_ENV);
            ACE_TRY_CHECK;
          }
      }
    ACE_CATCHANY
      {
        ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
                             "Exception caught:");
        return 1;
      }
    ACE_ENDTRY;
  
    return 0;
  }
  