summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp')
-rw-r--r--TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp375
1 files changed, 0 insertions, 375 deletions
diff --git a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp b/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp
deleted file mode 100644
index 51d94878c79..00000000000
--- a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp
+++ /dev/null
@@ -1,375 +0,0 @@
-// $Id$
-
-#include "ace/Get_Opt.h"
-#include "ace/Auto_Ptr.h"
-#include "orbsvcs/CosNamingC.h"
-
-#include "Scheduling_Service.h"
-
-ACE_RCSID(Scheduling_Service, Scheduling_Service, "$Id$")
-
-// Default Constructor.
-
-TAO_Scheduling_Service::TAO_Scheduling_Service (void)
- : scheduler_impl_ (0),
- ior_file_name_ (0),
- pid_file_name_ (0),
- service_name_ ("ScheduleService"),
- scheduler_type_ (CONFIG)
-{
-}
-
-
-// Constructor taking the command-line arguments.
-
-TAO_Scheduling_Service::TAO_Scheduling_Service (int argc, char *argv[])
- : scheduler_impl_ (0),
- ior_file_name_ (0),
- pid_file_name_ (0),
- service_name_ ("ScheduleService"),
- scheduler_type_ (CONFIG)
-{
- this->init (argc, argv);
-}
-
-// Destructor.
-
-TAO_Scheduling_Service::~TAO_Scheduling_Service (void)
-{
-}
-
-
-// Initialize the Scheduling Service with the arguments.
-
-int
-TAO_Scheduling_Service::init (int argc, char *argv[])
-{
- int result;
- CORBA::ORB_var orb;
- PortableServer::POAManager_ptr poa_manager;
-
- ACE_TRY_NEW_ENV
- {
- // Initialize ORB manager.
- this->orb_manager_.init (argc, argv, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- orb = this->orb_manager_.orb ();
- ACE_TRY_CHECK;
-
- poa_manager = this->orb_manager_.poa_manager ();
- ACE_TRY_CHECK;
-
- poa_manager->activate (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Check the non-ORB arguments. this needs to come before we
- // initialize the scheduler implementation so that we know which
- // type of scheduler to use.
-
- result = this->parse_args (argc, argv);
- if (result < 0)
- return result;
-
- // Construct a scheduler implementation of the specified type.
- switch (this->scheduler_type_)
- {
-
-// The templatized method parameters needed by the reconfig scheduler
-// class template are hopelessly broken on pre-2.8 versions of g++.
-#if (! defined (__GNUC__)) || (__GNUC__ > 2) || \
-(__GNUC__ == 2 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 8)
-
- case RECONFIG:
- ACE_NEW_THROW_EX (scheduler_impl_,
- RECONFIG_SCHED_TYPE,
- CORBA::NO_MEMORY ());
- ACE_TRY_CHECK;
- break;
-
-#endif /* __GNUC__ */
-
- case CONFIG:
- ACE_NEW_THROW_EX (scheduler_impl_,
- CONFIG_SCHED_TYPE,
- CORBA::NO_MEMORY ());
- ACE_TRY_CHECK;
- break;
-
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "TAO_Scheduling_Service::init: "
- "unrecognized Scheduler_Type"), -1);
- }
-
- // Locate the naming service.
- CORBA::Object_var naming_obj =
- orb->resolve_initial_references ("NameService");
- if (CORBA::is_nil (naming_obj.in ()))
- ACE_ERROR_RETURN ((LM_ERROR,
- " (%P|%t) Unable to locate the Naming Service.\n"),
- -1);
- CosNaming::NamingContext_var naming_context =
- CosNaming::NamingContext::_narrow (naming_obj.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- RtecScheduler::Scheduler_var scheduler =
- this->scheduler_impl_->_this (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- CORBA::String_var scheduler_ior_string =
- orb->object_to_string (scheduler.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- ACE_DEBUG ((LM_DEBUG, "The scheduler IOR is <%s>\n",
- scheduler_ior_string.in ()));
-
- // Register the servant with the Naming Context....
- CosNaming::Name schedule_name (1);
- schedule_name.length (1);
- schedule_name[0].id = CORBA::string_dup (this->service_name_);
- naming_context->rebind (schedule_name, scheduler.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- if (this->ior_file_name_ != 0)
- {
- FILE *iorf = fopen (this->ior_file_name_, "w");
- if (iorf != 0)
- {
- ACE_OS::fprintf (iorf,
- "%s\n",
- scheduler_ior_string.in ());
- ACE_OS::fclose (iorf);
- }
- }
-
- if (this->pid_file_name_ != 0)
- {
- FILE *pidf = fopen (this->pid_file_name_, "w");
- if (pidf != 0)
- {
- ACE_OS::fprintf (pidf,
- "%d\n",
- ACE_OS::getpid ());
- ACE_OS::fclose (pidf);
- }
- }
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "TAO_Scheduling_Service::init");
- return -1;
- }
- ACE_ENDTRY;
-
- return 0;
-}
-
-
-// Runs the TAO_Scheduling_Service.
-
-int
-TAO_Scheduling_Service::run (CORBA_Environment& ACE_TRY_ENV)
-{
- // Run the ORB manager.
- return this->orb_manager_.run (ACE_TRY_ENV);
-}
-
-
-// Parses the command line arguments.
-
-int
-TAO_Scheduling_Service::parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "n:p:o:s:");
- int opt;
-
- while ((opt = get_opt ()) != EOF)
- {
- switch (opt)
- {
- case 'n':
- this->service_name_ = get_opt.optarg;
- break;
-
- case 'p':
- this->pid_file_name_ = get_opt.optarg;
- break;
-
- case 'o':
- this->ior_file_name_ = get_opt.optarg;
- break;
-
-// The templatized method parameters needed by the reconfig scheduler
-// class template are hopelessly broken on pre-2.8 versions of g++.
-#if (! defined (__GNUC__)) || (__GNUC__ > 2) || \
-(__GNUC__ == 2 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 8)
-
- case 's':
- if (ACE_OS::strcasecmp ("CONFIG", get_opt.optarg) == 0)
- {
- this->scheduler_type_ = CONFIG;
- }
- else if (ACE_OS::strcasecmp ("RECONFIG", get_opt.optarg) == 0)
- {
- this->scheduler_type_ = RECONFIG;
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- "Usage: %s "
- "[-n service_name] "
- "[-p pid_file_name] "
- "[-o ior_file_name] "
- "[-s <CONFIG | reconfig>]"
- "\n",
- argv[0]));
-
- return -1;
- }
- break;
-
-#endif /* __GNUC__ */
-
- case '?':
- default:
-
-// The templatized method parameters needed by the reconfig scheduler
-// class template are hopelessly broken on pre-2.8 versions of g++.
-#if (! defined (__GNUC__)) || (__GNUC__ > 2) || \
-(__GNUC__ == 2 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 8)
-
- ACE_DEBUG ((LM_DEBUG,
- "Usage: %s "
- "[-n service_name] "
- "[-p pid_file_name] "
- "[-o ior_file_name] "
- "[-s <CONFIG | reconfig>]"
- "\n",
- argv[0]));
-
-#else /* __GNUC__ <= 2.8 */
-
- ACE_DEBUG ((LM_DEBUG,
- "Usage: %s "
- "[-n service_name] "
- "[-p pid_file_name] "
- "[-o ior_file_name] "
- "\n",
- argv[0]));
-
-#endif /* __GNUC__ */
-
- return -1;
- }
- }
-
- return 0;
-}
-
-int main (int argc, char *argv[])
-{
- ACE_TRY_NEW_ENV
- {
- TAO_Scheduling_Service scheduling_service;
-
- ACE_DEBUG ((LM_DEBUG,
- "%s; initializing scheduling service\n", __FILE__));
-
- if (scheduling_service.init (argc, argv) < 0)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "init"), 1);
-
- ACE_DEBUG ((LM_DEBUG,
- "%s; running scheduling service\n", __FILE__));
-
- scheduling_service.run (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "schedule_service");
- return 1;
- }
- ACE_ENDTRY;
-
- return 0;
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#if (! defined (__GNUC__)) || (__GNUC__ > 2) || \
-(__GNUC__ == 2 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 8)
-template class auto_ptr<RtecScheduler::Config_Info>;
-template class auto_ptr<RtecScheduler::RT_Info>;
-template class auto_ptr<TAO_Reconfig_Scheduler_Entry>;
-template class ACE_Auto_Basic_Ptr<RtecScheduler::Config_Info>;
-template class ACE_Auto_Basic_Ptr<RtecScheduler::RT_Info>;
-template class ACE_Auto_Basic_Ptr<TAO_Reconfig_Scheduler_Entry>;
-template class ACE_Equal_To<int>;
-template class ACE_Hash_Map_Manager_Ex<int, RtecScheduler::Config_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Manager_Ex<int, RtecScheduler::Dependency_Set *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Manager_Ex<int, RtecScheduler::RT_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::Config_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::Dependency_Set *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::RT_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::Config_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::Dependency_Set*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::RT_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::Config_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::Dependency_Set*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::RT_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Entry<int, RtecScheduler::Config_Info *>;
-template class ACE_Hash_Map_Entry<int, RtecScheduler::Dependency_Set *>;
-template class ACE_Hash_Map_Entry<int, RtecScheduler::RT_Info *>;
-template class ACE_RB_Tree<const char *, RtecScheduler::RT_Info *, ACE_Less_Than<const char *>, ACE_SYNCH_MUTEX>;
-template class ACE_RB_Tree_Node<const char *, RtecScheduler::RT_Info *>;
-template class ACE_RB_Tree_Iterator<const char *, RtecScheduler::RT_Info *, ACE_Less_Than<const char *>, ACE_SYNCH_MUTEX>;
-template class ACE_RB_Tree_Iterator_Base<char const *, RtecScheduler::RT_Info *, ACE_Less_Than<char const *>, ACE_SYNCH_MUTEX>;
-template class ACE_RB_Tree_Reverse_Iterator<const char *, RtecScheduler::RT_Info *, ACE_Less_Than<const char *>, ACE_SYNCH_MUTEX>;
-template class TAO_Reconfig_Scheduler<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>;
-template class TAO_RSE_Dependency_Visitor<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>;
-template class TAO_RSE_DFS_Visitor<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>;
-template class TAO_RSE_Priority_Visitor<TAO_MUF_Reconfig_Sched_Strategy>;
-template class TAO_RSE_Propagation_Visitor<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>;
-template class TAO_RSE_SCC_Visitor<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>;
-template class TAO_RSE_Utilization_Visitor<TAO_MUF_Reconfig_Sched_Strategy>;
-# endif /* __GNUC__ */
-#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#if (! defined (__GNUC__)) || (__GNUC__ > 2) || \
-(__GNUC__ == 2 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 8)
-#pragma instantiate auto_ptr<RtecScheduler::Config_Info>
-#pragma instantiate auto_ptr<RtecScheduler::RT_Info>
-#pragma instantiate auto_ptr<TAO_Reconfig_Scheduler_Entry>
-#pragma instantiate ACE_Auto_Basic_Ptr<RtecScheduler::Config_Info>
-#pragma instantiate ACE_Auto_Basic_Ptr<RtecScheduler::RT_Info>
-#pragma instantiate ACE_Auto_Basic_Ptr<TAO_Reconfig_Scheduler_Entry>
-#pragma instantiate ACE_Equal_To<int>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<int, RtecScheduler::Config_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<int, RtecScheduler::Dependency_Set *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<int, RtecScheduler::RT_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::Config_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::Dependency_Set *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<int, RtecScheduler::RT_Info *, ACE_Hash<int>, ACE_Equal_To<int>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::Config_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::Dependency_Set*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<int,RtecScheduler::RT_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::Config_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::Dependency_Set*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<int,RtecScheduler::RT_Info*,ACE_Hash<int>,ACE_Equal_To<int>,ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Entry<int, RtecScheduler::Config_Info *>
-#pragma instantiate ACE_Hash_Map_Entry<int, RtecScheduler::Dependency_Set *>
-#pragma instantiate ACE_Hash_Map_Entry<int, RtecScheduler::RT_Info *>
-#pragma instantiate ACE_RB_Tree<const char *, RtecScheduler::RT_Info *, ACE_Less_Than<const char *>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_RB_Tree_Node<const char *, RtecScheduler::RT_Info *>
-#pragma instantiate ACE_RB_Tree_Iterator<const char *, RtecScheduler::RT_Info *, ACE_Less_Than<const char *>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_RB_Tree_Iterator_Base<char const *, RtecScheduler::RT_Info *, ACE_Less_Than<char const *>, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_RB_Tree_Reverse_Iterator<const char *, RtecScheduler::RT_Info *, ACE_Less_Than<const char *>, ACE_SYNCH_MUTEX>
-#pragma instantiate TAO_Reconfig_Scheduler<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>
-#pragma instantiate TAO_RSE_Dependency_Visitor<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>
-#pragma instantiate TAO_RSE_DFS_Visitor<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>
-#pragma instantiate TAO_RSE_Priority_Visitor<TAO_MUF_Reconfig_Sched_Strategy>
-#pragma instantiate TAO_RSE_Propagation_Visitor<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>
-#pragma instantiate TAO_RSE_SCC_Visitor<TAO_MUF_Reconfig_Sched_Strategy, ACE_SYNCH_MUTEX>
-#pragma instantiate TAO_RSE_Utilization_Visitor<TAO_MUF_Reconfig_Sched_Strategy>
-# endif /* __GNUC__ */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */