📄 collocated_test.cpp
字号:
//Collocated_Test.cpp,v 1.1 2003/08/07 00:07:42 arvindk Exp
#include "Server_Task.h"
#include "Client_Task.h"
#include "ace/Get_Opt.h"
#include "ace/Argv_Type_Converter.h"
#include "ace/Sched_Params.h"
#include "tao/Strategies/advanced_resource.h"
char *ior_file = "test.ior";
int niterations = 100;
int
parse_args (int argc, char *argv[])
{
ACE_Get_Opt get_opts (argc, argv, "k:n:");
int c;
while ((c = get_opts ()) != -1)
switch (c)
{
case 'k':
ior_file = get_opts.opt_arg ();
break;
case 'n':
niterations = ACE_OS::atoi (get_opts.opt_arg ());
break;
case '?':
default:
// This is a hack but that is okay!
return 0;
}
// Indicates sucessful parsing of the command line
return 0;
}
void
set_priority()
{
int priority =
(ACE_Sched_Params::priority_min (ACE_SCHED_FIFO)
+ ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2;
priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO,
priority);
// Enable FIFO scheduling, e.g., RT scheduling class on Solaris.
if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO,
priority,
ACE_SCOPE_PROCESS)) != 0)
{
if (ACE_OS::last_error () == EPERM)
{
ACE_DEBUG ((LM_DEBUG,
"server (%P|%t): user is not superuser, "
"test runs in time-shared class\n"));
}
else
ACE_ERROR ((LM_ERROR,
"server (%P|%t): sched_params failed\n"));
}
}
int
main (int argc, char *argv[])
{
if (parse_args (argc,argv) == -1)
return -1;
//Use Real-time Scheduling class if possible
set_priority();
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
ACE_Argv_Type_Converter satc (argc, argv);
CORBA::ORB_var sorb =
CORBA::ORB_init (satc.get_argc (),
satc.get_TCHAR_argv ()
ACE_ENV_ARG_PARAMETER);
//server_orb.c_str ()
ACE_TRY_CHECK;
ACE_Null_Mutex mutex;
ACE_Null_Condition wait_for_event (mutex);
Server_Task server_task (ior_file,
sorb.in (),
wait_for_event,
ACE_Thread_Manager::instance ());
if (server_task.activate (THR_NEW_LWP | THR_JOINABLE,
1,
1) == -1)
{
ACE_ERROR ((LM_ERROR, "Error activating server task\n"));
}
// Wait for the server thread to do some processing
wait_for_event.wait ();
ACE_Argv_Type_Converter catc (argc, argv);
CORBA::ORB_var corb =
CORBA::ORB_init (catc.get_argc (),
catc.get_TCHAR_argv ()
ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
Client_Task client_task (ior_file,
niterations,
corb.in (),
ACE_Thread_Manager::instance ());
if (client_task.activate (THR_NEW_LWP | THR_JOINABLE,
1,
1) == -1)
{
ACE_ERROR ((LM_ERROR, "Error activating client task\n"));
}
ACE_Thread_Manager::instance ()->wait ();
}
ACE_CATCHANY
{
// Ignore exceptions..
}
ACE_ENDTRY;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -