1
// collocation_test.cpp,v 1.24 2003/11/04 05:21:33 dhinton Exp
3
#include "Cubit_Client.h"
4
#include "Cubit_Server.h"
6
#include "tao/Strategies/advanced_resource.h"
8
#include "ace/Barrier.h"
9
#include "ace/Get_Opt.h"
11
#include "ace/Thread_Manager.h"
13
ACE_RCSID(IDL_Cubit, collocation_test, "collocation_test.cpp,v 1.24 2003/11/04 05:21:33 dhinton Exp")
15
#define THE_IOR "theior"
19
Barriers (unsigned int init)
20
: server_init_ (init),
24
ACE_Barrier server_init_;
25
ACE_Barrier client_fini_;
28
static const char *server_cmd = 0;
31
svr_worker (void *arg)
33
Cubit_Server cubit_server;
34
Barriers *barrier = (Barriers *) arg;
37
ACE_OS::strcpy (cmd_line, "server ");
39
ACE_OS::strcat (cmd_line, server_cmd);
40
ACE_OS::strcat (cmd_line, " -f " THE_IOR);
41
ACE_ARGV args (cmd_line);
45
int result = cubit_server.init (args.argc (),
47
ACE_ENV_ARG_PARAMETER);
53
barrier->server_init_.wait ();
54
cubit_server.run (ACE_ENV_SINGLE_ARG_PARAMETER);
57
barrier->client_fini_.wait ();
59
ACE_CATCH (CORBA::SystemException, sysex)
61
ACE_PRINT_EXCEPTION (sysex, "System Exception");
64
ACE_CATCH (CORBA::UserException, userex)
66
ACE_PRINT_EXCEPTION (userex, "User Exception");
75
main (int argc, char **argv)
77
ACE_Get_Opt get_opts (argc, argv, "s:c:");
79
const char *client_cmd = 0;
81
while ((c = get_opts ()) != -1)
85
client_cmd = get_opts.opt_arg ();
86
ACE_DEBUG ((LM_DEBUG, "Client argument: %s\n", client_cmd));
89
server_cmd = get_opts.opt_arg ();
90
ACE_DEBUG ((LM_DEBUG, "Server argument: %s\n", server_cmd));
93
ACE_ERROR_RETURN ((LM_ERROR,
94
"Usage: collocation_test -s \"server opts\" -c \"client opts\""),
99
ACE_OS::strcpy (cmd_line, "client ");
101
ACE_OS::strcat (cmd_line, client_cmd);
102
ACE_OS::strcat (cmd_line, " -f " THE_IOR);
103
ACE_ARGV args (cmd_line);
105
Barriers barrier (2);
109
ACE_DEBUG ((LM_DEBUG,
110
"\n \t IDL_Cubit: Collocation test \n\n"));
112
ACE_Thread_Manager tm;
113
tm.spawn (ACE_reinterpret_cast (ACE_THR_FUNC, &svr_worker),
115
barrier.server_init_.wait ();
118
Cubit_Client cubit_client (1);
119
// Make sure the server shuts itself down afterward.
121
if (cubit_client.init (args.argc (), args.argv ()) == -1)
124
retv = cubit_client.run ();
126
barrier.client_fini_.wait ();
129
ACE_OS::unlink (THE_IOR);