Merge pull request #1551 from DOCGroup/plm_jira_333
[ACE_TAO.git] / TAO / orbsvcs / tests / Bug_3444_Regression / client.cpp
blob34e9ae8b7a41eb0d7be24cf9fa72bf34fe7a1dcf
1 #include "ace/OS_NS_stdio.h"
2 #include "ace/Get_Opt.h"
3 #include "TestC.h"
7 const ACE_TCHAR *ior_server = 0;
9 int
10 parse_args (int argc, ACE_TCHAR *argv[])
12 ACE_Get_Opt get_opts (argc, argv, ACE_TEXT ("k:"));
13 int c;
15 while ((c = get_opts ()) != -1)
16 switch (c)
18 case 'k':
19 ior_server = get_opts.opt_arg ();
20 break;
21 case '?':
22 default:
23 ACE_ERROR_RETURN ((LM_ERROR,
24 "usage: %s "
25 "-k file://<iorfile>"
26 "\n",
27 argv [0]),
28 -1);
30 // Indicates successful parsing of the command line
31 return 0;
34 int
35 ACE_TMAIN (int argc, ACE_TCHAR *argv[])
37 try
39 CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
41 if (parse_args (argc, argv) != 0)
42 ACE_ERROR_RETURN ((LM_ERROR, "Wrong arguments\n"), -1);
44 CORBA::Object_var tmp = orb->string_to_object (ior_server);
46 Test::Server_var server =
47 Test::Server::_unchecked_narrow (tmp.in ());
49 if (CORBA::is_nil (server.in ()))
50 ACE_ERROR_RETURN ((LM_ERROR, "Nil reference\n"), -1);
52 server->shutdown ();
54 orb->destroy ();
56 catch (const ::CORBA::Exception &ex)
58 ex._tao_print_exception ("Exception in client.cpp:\n");
59 return -1;
62 return 0;