diff options
Diffstat (limited to 'TAO/examples/AMI/FL_Callback/peer.cpp')
-rw-r--r-- | TAO/examples/AMI/FL_Callback/peer.cpp | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/TAO/examples/AMI/FL_Callback/peer.cpp b/TAO/examples/AMI/FL_Callback/peer.cpp deleted file mode 100644 index e59159d401f..00000000000 --- a/TAO/examples/AMI/FL_Callback/peer.cpp +++ /dev/null @@ -1,178 +0,0 @@ -// $Id$ - -#include "Peer_i.h" -#include "ace/Get_Opt.h" -#include "ace/Task.h" -#include "ace/Sched_Params.h" - -ACE_RCSID(FL_Callback, peer, "$Id$") - -const char *ior = "file://progress.ior"; -int nthreads = 4; -int interval = 0; // microseconds - -int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "k:n:t:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'k': - ior = get_opts.optarg; - break; - - case 'n': - nthreads = ACE_OS::atoi (get_opts.optarg); - break; - - case 't': - interval = ACE_OS::atoi (get_opts.optarg); - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s " - "-o <iorfile>" - "-n <threads>" - "-t <microseconds>" - "\n", - argv [0]), - -1); - } - // Indicates sucessful parsing of the command line - return 0; -} - -class Worker : public ACE_Task_Base -{ - // = TITLE - // Run a server thread - // - // = DESCRIPTION - // Use the ACE_Task_Base class to run server threads - // -public: - Worker (CORBA::ORB_ptr orb); - // ctor - - virtual int svc (void); - // The thread entry point. - -private: - CORBA::ORB_var orb_; - // The orb -}; - -int -main (int argc, char *argv[]) -{ - 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); - - 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")); - } - - ACE_TRY_NEW_ENV - { - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "", ACE_TRY_ENV); - ACE_TRY_CHECK; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (ACE_TRY_ENV); - ACE_TRY_CHECK; - - poa_manager->activate (ACE_TRY_ENV); - ACE_TRY_CHECK; - - if (parse_args (argc, argv) != 0) - return 1; - - CORBA::Object_var progress_object = - orb->string_to_object (ior, ACE_TRY_ENV); - ACE_TRY_CHECK; - - Progress_var progress = - Progress::_narrow (progress_object.in (), ACE_TRY_ENV); - ACE_TRY_CHECK; - - ACE_Time_Value delay (0, interval); - - Peer_i peer; - peer.init (orb.in (), - progress.in (), - delay, - ACE_TRY_ENV); - ACE_TRY_CHECK; - - Worker worker (orb.in ()); - if (worker.activate (THR_NEW_LWP | THR_JOINABLE, - nthreads) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Cannot activate client threads\n"), - 1); - - worker.thr_mgr ()->wait (); - - ACE_DEBUG ((LM_DEBUG, "event loop finished\n")); - } - ACE_CATCHANY - { - ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, - "Catched exception:"); - return 1; - } - ACE_ENDTRY; - - return 0; -} - -// **************************************************************** - -Worker::Worker (CORBA::ORB_ptr orb) - : orb_ (CORBA::ORB::_duplicate (orb)) -{ -} - -int -Worker::svc (void) -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) starting event loop\n")); - this->orb_->run (); - return 0; -} |