Changes to attempt to silence bcc64x
[ACE_TAO.git] / TAO / examples / CSD_Strategy / ThreadPool / ClientApp.cpp
blob519863e3f5535c31a4d2dc772486a05720584efa
1 #include "ClientApp.h"
2 #include "FooC.h"
3 #include "ace/Get_Opt.h"
4 #include "ace/Log_Msg.h"
7 ClientApp::ClientApp()
12 ClientApp::~ClientApp()
17 int
18 ClientApp::run (int argc, ACE_TCHAR* argv[])
20 CORBA::ORB_var orb
21 = CORBA::ORB_init (argc, argv);
23 // Parse the command-line args for this application.
24 // * Raises -1 if problems are encountered.
25 // * Returns 1 if the usage statement was explicitly requested.
26 // * Returns 0 otherwise.
27 int result = this->parse_args (argc, argv);
28 if (result != 0)
30 return result;
33 CORBA::Object_var obj
34 = orb->string_to_object(this->ior_.c_str());
36 if (CORBA::is_nil(obj.in()))
38 ACE_ERROR((LM_ERROR,
39 "(%P|%t) Failed to convert IOR string to obj ref.\n"));
40 throw TestException();
43 Foo_var foo = Foo::_narrow(obj.in());
45 if (CORBA::is_nil(foo.in()))
47 ACE_ERROR((LM_ERROR,
48 "(%P|%t) Failed to narrow obj ref to Foo interface.\n"));
49 throw TestException();
52 for (CORBA::Long i = 1; i <= 100; i++)
54 foo->op1();
55 foo->op2(i);
56 CORBA::Long value = foo->op3();
58 ACE_DEBUG((LM_DEBUG,
59 "(%P|%t) ===> Value retrieved from op3() == %d\n",
60 value));
62 for (CORBA::Long j = 1; j <= 5; j++)
64 foo->op4(495 + (i * 5) + j);
67 try
69 foo->op5();
71 catch (const FooException& )
73 ACE_DEBUG((LM_DEBUG,
74 "(%P|%t) ===> Caught FooException - as expected.\n"));
78 ACE_DEBUG((LM_DEBUG,
79 "(%P|%t) ===> Tell server that we are done().\n"));
81 foo->done();
83 ACE_DEBUG((LM_DEBUG,
84 "(%P|%t) ===> Back from done().\n"));
86 return 0;
90 int
91 ClientApp::parse_args(int argc, ACE_TCHAR* argv[])
93 this->exe_name_ = argv[0];
95 ACE_Get_Opt get_opts(argc, argv, ACE_TEXT("i:"));
97 int c;
99 while ((c = get_opts()) != -1)
101 switch (c)
103 case 'i':
104 this->ior_ = get_opts.opt_arg();
105 break;
107 case '?':
108 this->usage_statement();
109 return 1;
111 default:
112 this->usage_statement();
113 return -1;
117 return 0;
121 void
122 ClientApp::usage_statement()
124 ACE_ERROR((LM_ERROR,
125 "Usage: %s [options]\n\n"
126 "OPTIONS:\n\n"
127 "\t[-i <ior>]\n"
128 "\t[-?]\n\n",
129 this->exe_name_.c_str()));