1 #include "Server_Task.h"
2 #include "Client_Task.h"
3 #include "Echo_Collocated_ORBInitializer.h"
4 #include "interceptors.h"
5 #include "tao/ORBInitializer_Registry.h"
6 #include "ace/Get_Opt.h"
7 #include "ace/Argv_Type_Converter.h"
8 #include "ace/SString.h"
9 #include "ace/Manual_Event.h"
11 const ACE_TCHAR
*output
= ACE_TEXT("test.ior");
12 const ACE_TCHAR
*input
= ACE_TEXT("file://test.ior");
13 ACE_CString server_orb
;
14 ACE_CString client_orb
;
16 parse_args (int argc
, ACE_TCHAR
*argv
[])
18 ACE_Get_Opt
get_opts (argc
, argv
, ACE_TEXT("k:o"));
21 while ((c
= get_opts ()) != -1)
25 output
= get_opts
.opt_arg ();
28 input
= get_opts
.opt_arg ();
32 // This is a hack but that is okay!
35 // Indicates successful parsing of the command line
40 ACE_TMAIN(int argc
, ACE_TCHAR
*argv
[])
46 server_orb
.set ("server_orb");
47 client_orb
.set ("client_orb");
51 PortableInterceptor::ORBInitializer_ptr temp_initializer
=
52 PortableInterceptor::ORBInitializer::_nil ();
54 ACE_NEW_RETURN (temp_initializer
,
55 Echo_Collocated_ORBInitializer
,
56 -1); // No exceptions yet!
57 PortableInterceptor::ORBInitializer_var orb_initializer
=
60 PortableInterceptor::register_orb_initializer (orb_initializer
.in ());
62 ACE_Argv_Type_Converter
satc (argc
, argv
);
64 CORBA::ORB_init (satc
.get_argc (),
65 satc
.get_TCHAR_argv (),
69 Server_Task
server_task (output
,
72 ACE_Thread_Manager::instance ());
74 if (server_task
.activate (THR_NEW_LWP
| THR_JOINABLE
,
78 ACE_ERROR ((LM_ERROR
, "Error activating server task\n"));
81 // Wait for the server thread to do some processing
84 ACE_Argv_Type_Converter
catc (argc
, argv
);
86 CORBA::ORB_init (catc
.get_argc (),
87 catc
.get_TCHAR_argv (),
90 Client_Task
client_task (input
,
92 ACE_Thread_Manager::instance ());
94 if (client_task
.activate (THR_NEW_LWP
| THR_JOINABLE
,
98 ACE_ERROR ((LM_ERROR
, "Error activating client task\n"));
101 ACE_Thread_Manager::instance ()->wait ();
105 CORBA::ULong number_called
=
106 Echo_Server_Request_Interceptor::server_interceptor_check_
;
108 if (number_called
!= 10)
110 ACE_ERROR ((LM_ERROR
,
111 "(%P|%t) ERROR: Server Side Interceptors not"
112 " called properly, called %d times, expected 10\n",
116 if (Echo_Client_Request_Interceptor::client_interceptor_check_
!= 10)
117 ACE_ERROR ((LM_ERROR
,
118 "(%P|%t) ERROR:Client Interceptors not called"
123 catch (const CORBA::Exception
&)
125 // Ignore exceptions..