More tests update
[ACE_TAO.git] / TAO / tests / Bug_3506_Regression / client.cpp
blob3367db613809af6ad0c7ac967ef1cec8c5740e26
1 #include "IF_EXE_M_R_StructsC.h"
2 #include "ace/Get_Opt.h"
3 #include "ace/OS_NS_string.h"
5 const ACE_TCHAR *ior = ACE_TEXT ("file://test.ior");
7 int
8 parse_args (int argc, ACE_TCHAR *argv[])
10 ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:"));
11 int c;
13 while ((c = get_opts ()) != -1)
14 switch (c)
16 case 'k':
17 ior = get_opts.opt_arg ();
18 break;
20 case '?':
21 default:
22 ACE_ERROR_RETURN ((LM_ERROR,
23 "usage: %s "
24 "-k <ior> "
25 "\n",
26 argv [0]),
27 -1);
29 // Indicates successful parsing of the command line
30 return 0;
34 CORBA::ORB_var m_ORB_p;
36 class IF_Test_client
38 public:
39 int
40 foo (int argc, ACE_TCHAR *argv[], bool shutdown)
42 IF_EXE_M_R::IF_ExeCtrlData_var client;
43 IF_EXE_M_R::Test_Struct ts;
44 IF_EXE_M_R::CORBA_BaseFOOG FOOG;
45 IF_EXE_M_R::CORBA_FOOIInPlan bs;
47 FOOG.FOOD = IF_EXE_M_R::ENUM_FOOD (0);
48 FOOG.FOOIID = CORBA::string_dup ("A_FOOG");
49 ACE_OS::memset (&FOOG.startPosition,
50 0, sizeof(IF_EXE_M_R::CORBA_LatLongFOOB));
51 ACE_OS::memset (&FOOG.endPosition,
52 0, sizeof(IF_EXE_M_R::CORBA_LatLongFOOB));
53 FOOG.FOOBReferenceStartPosition = IF_EXE_M_R::FOOBMode_E (0);
54 FOOG.averageFOOHFOOB = 0.0;
55 FOOG.FOOBControlMode = IF_EXE_M_R::ENUM_ControlMode (0);
56 FOOG.datasetVersion = 1L;
57 FOOG.maxHorizontalFOOU = 0L;
58 FOOG.maxVerticalFOOU = 0L;
59 FOOG.FOOTDistance = 0.0;
60 FOOG.startFOOA = 0.0;
61 FOOG.FOOTDuration = 0.0;
62 FOOG.endFOOA = 0.0;
63 FOOG.FOOTEnergyConsum = 0.0;
64 FOOG.FOOAReference = IF_EXE_M_R::FOOAMode_E (0);
65 FOOG.FOOAControlMode = IF_EXE_M_R::ENUM_ControlMode (0);
66 FOOG.FOOBReferenceEndPosition = IF_EXE_M_R::FOOBMode_E (0);
67 FOOG.economyMode = IF_EXE_M_R::ENUM_Selection (0);
68 FOOG.cl_FOOSMode = IF_EXE_M_R::ENUM_CL_FOOSMode (0);
69 FOOG.transitionStatus = IF_EXE_M_R::ENUM_TransitionStatus (0);
70 FOOG.FOOKTypeStart = IF_EXE_M_R::ENUM_FOOKType (0);
71 FOOG.activeComponents.length (0);
72 FOOG.FOOKTypeEnd = IF_EXE_M_R::ENUM_FOOKType (0);
74 bs.type = IF_EXE_M_R::BASE_FOOG;
75 bs.data.FOOVFOOG (FOOG);
77 ts.l = 42L;
78 ts.whatEver <<= bs;
80 try
82 if (parse_args (argc, argv) != 0)
83 return 1;
85 CORBA::Object_var obj = m_ORB_p->string_to_object (ior);
86 if (CORBA::is_nil (obj.in ()))
88 ACE_ERROR_RETURN ((LM_DEBUG,
89 "Nil Test::Hello reference <%s>\n",
90 ior),
91 1);
93 ACE_DEBUG ((LM_DEBUG, "RepositoryID: %s\n", obj->_interface_repository_id()));
94 client = IF_EXE_M_R::IF_ExeCtrlData::_narrow (obj.in ());
95 if (CORBA::is_nil (client.in ()))
97 ACE_ERROR_RETURN ((LM_DEBUG,
98 "Reference is not of type IF_EXE_M_R::IF_ExeCtrlData\n"),
99 1);
102 client->foo (ts);
103 if (shutdown)
105 client->shutdown ();
108 catch (const CORBA::Exception &ex)
110 ex._tao_print_exception ("Exception caught:");
112 return 0;
117 ACE_TMAIN (int argc, ACE_TCHAR *argv[])
119 int retval = 0;
122 m_ORB_p = CORBA::ORB_init (argc, argv);
123 IF_Test_client testclient;
125 for (int i = 0; i < 10; i++)
127 retval += testclient.foo (argc, argv, i == 9);
130 catch (const ::CORBA::Exception &ex)
132 ex._tao_print_exception("ERROR : unexpected CORBA exception caugth :");
133 ++retval;
135 return retval;