diff options
Diffstat (limited to 'TAO/orbsvcs/tests/AVStreams/benchmark/server.cpp')
-rw-r--r-- | TAO/orbsvcs/tests/AVStreams/benchmark/server.cpp | 305 |
1 files changed, 0 insertions, 305 deletions
diff --git a/TAO/orbsvcs/tests/AVStreams/benchmark/server.cpp b/TAO/orbsvcs/tests/AVStreams/benchmark/server.cpp deleted file mode 100644 index 57193844f71..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/benchmark/server.cpp +++ /dev/null @@ -1,305 +0,0 @@ -// $Id$ - -#include "server.h" -#include "tao/Timeprobe.h" - -ACE_RCSID(benchmark, server, "$Id$") - -// // AV_Server_Sig_Handler routines - -// AV_Server_Sig_Handler::AV_Server_Sig_Handler (void) -// { -// } - -// int -// AV_Server_Sig_Handler::register_handler (void) -// { -// // Assign the Sig_Handler a dummy I/O descriptor. Note that even -// // though we open this file "Write Only" we still need to use the -// // ACE_Event_Handler::NULL_MASK when registering this with the -// // ACE_Reactor (see below). -// this->handle_ = ACE_OS::open (ACE_DEV_NULL, O_WRONLY); -// // ACE_ASSERT (this->handle_ != -1); -// // ACE_DEBUG ((LM_DEBUG,"(%P|%t) sig_handler == %d\n",this->handle_)); - -// // Register signal handler object. Note that NULL_MASK is used to -// // keep the ACE_Reactor from calling us back on the "/dev/null" -// // descriptor. - -// if (TAO_ORB_Core_instance ()->reactor ()->register_handler -// (this, ACE_Event_Handler::NULL_MASK) == -1) -// ACE_ERROR_RETURN ((LM_ERROR, -// "%p\n", -// "register_handler"), -// -1); - -// // handles these signals. -// // this->sig_set.fill_set (); -// // this->sig_set.sig_add (SIGCHLD); -// // this->sig_set.sig_add (SIGBUS); -// // this->sig_set.sig_add (SIGINT); -// // this->sig_set.sig_add (SIGTERM); - -// // Register the signal handler object to catch the signals. if -// // if (TAO_ORB_Core_instance ()->reactor ()->register_handler -// // (this->sig_set, this) == -1) -// // ACE_ERROR_RETURN ((LM_ERROR, -// // "%p\n", -// // "register_handler"), -// // -1); -// return 0; -// } - -// // Called by the ACE_Reactor to extract the fd. -// ACE_HANDLE -// AV_Server_Sig_Handler::get_handle (void) const -// { -// return this->handle_; -// } - -// int -// AV_Server_Sig_Handler::handle_input (ACE_HANDLE) -// { -// ACE_DEBUG ((LM_DEBUG, "(%t) handling asynchonrous input...\n")); -// return 0; -// } - -// int -// AV_Server_Sig_Handler::shutdown (ACE_HANDLE, ACE_Reactor_Mask) -// { -// ACE_DEBUG ((LM_DEBUG, "(%t) closing down Sig_Handler...\n")); -// return 0; -// } - -// // This method handles all the signals that are being caught by this -// // object. In our simple example, we are simply catching SIGALRM, -// // SIGINT, and SIGQUIT. Anything else is logged and ignored. -// // -// // There are several advantages to using this approach. First, -// // the behavior triggered by the signal is handled in the main event -// // loop, rather than in the signal handler. Second, the ACE_Reactor's -// // signal handling mechanism eliminates the need to use global signal -// // handler functions and data. - -// // int -// // AV_Server_Sig_Handler::handle_signal (int signum, siginfo_t *, ucontext_t *) -// // { -// // ACE_DEBUG ((LM_DEBUG, "(%P|%t) received signal %S\n", signum)); - -// // // switch (signum) -// // // { -// // // case SIGCHLD: -// // // // Handle the death of child signal. -// // // this->clear_child (SIGCHLD); -// // // break; -// // // case SIGBUS: -// // // // Handle the Bus error signal -// // // case SIGINT: -// // // // Handle the interrupt signal -// // // case SIGTERM: -// // // // Handle the process termination signal. -// // // this->int_handler (signum); -// // // break; -// // // default: -// // // // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %S: not handled, returning to program\n", signum)); -// // // break; -// // // } -// // return 0; -// // } - -// AV_Server_Sig_Handler::~AV_Server_Sig_Handler (void) -// { -// TAO_ORB_Core_instance ()->reactor ()->remove_handler (this->sig_set); -// } - - -//------------------------------------------------------------ -Server::Server (void) - :process_strategy_ (&process_options_), - reactive_strategy_(&orb_manager_), - mmdevice_ (0) -{ -} - - -// Initializes the mpeg server -int -Server::init (int argc, - char *argv[], - CORBA::Environment& ACE_TRY_ENV) -{ - ACE_TRY - { - // Initialize the orb_manager - this->orb_manager_.init_child_poa (argc, - argv, - "child_poa", - ACE_TRY_ENV); - ACE_TRY_CHECK; - - CORBA::ORB_var orb = - this->orb_manager_.orb (); - - PortableServer::POA_var child_poa = - this->orb_manager_.child_poa (); - - - int result = this->parse_args (argc,argv); - if (result == -1) - ACE_ERROR_RETURN ((LM_ERROR,"parse args failed\n"),-1); - // Initialize the naming services - - if (my_name_client_.init (orb.in ()) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize " - "the TAO_Naming_Client. \n"), - -1); - - // Register the video mmdevice object with the ORB - switch (this->strategy_) - { - case REACTIVE_STRATEGY: - ACE_NEW_RETURN (this->mmdevice_, - TAO_MMDevice (&this->reactive_strategy_), - -1); - break; - case PROCESS_STRATEGY: - ACE_NEW_RETURN (this->mmdevice_, - TAO_MMDevice (&this->process_strategy_), - -1); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR,"Invalid strategy\n"),-1); - } - - // create the video server mmdevice with the naming service pointer. - this->orb_manager_.activate_under_child_poa ("Bench_Server_MMDevice", - this->mmdevice_, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - // Register the mmdevice with the naming service. - CosNaming::Name server_mmdevice_name (1); - server_mmdevice_name.length (1); - server_mmdevice_name [0].id = CORBA::string_dup ("Bench_Server_MMDevice"); - - // Register the video control object with the naming server. - this->my_name_client_->rebind (server_mmdevice_name, - this->mmdevice_->_this (), - ACE_TRY_ENV); - ACE_TRY_CHECK; - // result = this->signal_handler_.register_handler (); - - // if (result < 0) - // ACE_ERROR_RETURN ((LM_ERROR, - // "(%P|%t) Error registering signal handler"), - // -1); - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"Server::init"); - return -1; - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); - return 0; -} - -int -Server::parse_args (int argc,char **argv) -{ - ACE_Get_Opt opts (argc,argv,"pr"); - - char child_name [BUFSIZ], buf[BUFSIZ]; - ACE_OS::strcpy (child_name,"child_process"); - this->strategy_ = REACTIVE_STRATEGY; - int c; - while ((c = opts ()) != -1) - { - switch (c) - { - case 'p': - // process based strategy - this->strategy_ = PROCESS_STRATEGY; - break; - case 'r': - this->strategy_ = REACTIVE_STRATEGY; - break; - case 'c': - ACE_OS::strcpy (child_name,opts.optarg); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR,"Usage: server [-p/-r]"),-1); - } - } - ACE_OS::sprintf (buf,"%s -ORBobjrefstyle url",child_name); - this->process_options_.command_line (buf); - return 0; -} - -// Runs the server -int -Server::run (CORBA::Environment& ACE_TRY_ENV) -{ - // Run the ORB event loop - while (1) - { - this->orb_manager_.run (ACE_TRY_ENV); - ACE_CHECK_RETURN (-1); - if (errno== EINTR) - continue; - else - break; - } - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) Server::run () " - "came out of the (ORB) " - "event loop %p\n", - "run_event_loop")); - return 0; - -} - -Server::~Server (void) -{ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) Server: Removing handlers from the Reactor\n")); - - if (this->mmdevice_ != 0) - delete this->mmdevice_; - -} - - -int -main (int argc, char **argv) -{ - Server server; - ACE_DECLARE_NEW_CORBA_ENV; - ACE_TRY - { - if (server.init (argc, argv, ACE_TRY_ENV) == -1) - return 1; - ACE_TRY_CHECK; - - server.run (ACE_TRY_ENV); - ACE_TRY_CHECK; - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,"Bench_Server::Exception \n"); - return -1; - } - ACE_ENDTRY; - ACE_CHECK_RETURN (-1); - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_AV_Endpoint_Reactive_Strategy<Bench_Server_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>; -template class TAO_AV_Endpoint_Reactive_Strategy_B<Bench_Server_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy_B<Bench_Server_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl> -#pragma instantiate TAO_AV_Endpoint_Reactive_Strategy<Bench_Server_StreamEndPoint,TAO_VDev,AV_Null_MediaCtrl> -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ |