diff options
author | huangming <huangminghuang@users.noreply.github.com> | 2003-12-03 18:07:08 +0000 |
---|---|---|
committer | huangming <huangminghuang@users.noreply.github.com> | 2003-12-03 18:07:08 +0000 |
commit | aca361b90022e482e1d18f8ad93c49098dfecfc0 (patch) | |
tree | 21bfd94200577671f6fe640986bcc204f070e3ed | |
parent | 7f0db50760ef8431a3c306e5bdd4ed9030c37600 (diff) | |
download | ATCD-aca361b90022e482e1d18f8ad93c49098dfecfc0.tar.gz |
*** empty log message ***
5 files changed, 32 insertions, 14 deletions
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp index 24e33bbab5b..59cc8c21040 100644 --- a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp +++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp @@ -13,6 +13,8 @@ #include "orbsvcs/FtRtEvent/EventChannel/Replication_Service.h" #include "orbsvcs/FtRtEvent/Utils/Log.h" #include "orbsvcs/FtRtEvent/Utils/RT_Task.h" +#include "orbsvcs/Event/EC_Default_Factory.h" + #ifndef WIN32 #include <sys/time.h> #endif @@ -34,6 +36,7 @@ class Fault_Event_Service : public TAO_FTEC_Event_Channel public: Fault_Event_Service(CORBA::ORB_var orb, PortableServer::POA_var poa, + RtecScheduler::Scheduler_var scheduler, int fault_no); private: @@ -48,8 +51,9 @@ private: Fault_Event_Service::Fault_Event_Service(CORBA::ORB_var orb, PortableServer::POA_var poa, + RtecScheduler::Scheduler_var scheduler, int fault_no) -: TAO_FTEC_Event_Channel(orb, poa), msg_count_(0), fault_no_(fault_no) +: TAO_FTEC_Event_Channel(orb, poa,scheduler), msg_count_(0), fault_no_(fault_no) { } @@ -83,6 +87,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR* argv[]) { RT_Task::set_current(); + TAO_EC_Default_Factory::init_svcs (); FT_EventService event_service; return event_service.run (argc, argv); } @@ -150,7 +155,10 @@ FT_EventService::run(int argc, ACE_TCHAR* argv[]) CosNaming::NamingContext::_narrow (naming_obj.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; - setup_scheduler(naming_context.in() ACE_ENV_ARG_PARAMETER); + RtecScheduler::Scheduler_var scheduler = + setup_scheduler(naming_context.in() + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN(-1); @@ -159,7 +167,7 @@ FT_EventService::run(int argc, ACE_TCHAR* argv[]) // Activate the Event channel implementation - Fault_Event_Service ec(orb_, root_poa, fault_no_); + Fault_Event_Service ec(orb_, root_poa, scheduler, fault_no_); FtRtecEventChannelAdmin::EventChannel_var ec_ior = ec.activate(membership_ @@ -262,7 +270,7 @@ FT_EventService::parse_args (int argc, ACE_TCHAR* argv []) return 0; } -void +RtecScheduler::Scheduler_var FT_EventService::setup_scheduler(CosNaming::NamingContext_ptr naming_context ACE_ENV_ARG_DECL) { @@ -273,7 +281,7 @@ FT_EventService::setup_scheduler(CosNaming::NamingContext_ptr naming_context CORBA::NO_MEMORY()); scheduler = this->sched_impl_->_this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; + ACE_CHECK_RETURN(scheduler); if (ACE_Scheduler_Factory::server(scheduler.in()) == -1) ACE_ERROR((LM_ERROR,"Unable to install scheduler\n")); @@ -297,25 +305,26 @@ FT_EventService::setup_scheduler(CosNaming::NamingContext_ptr naming_context CORBA::NO_MEMORY()); scheduler = this->sched_impl_->_this (ACE_ENV_SINGLE_ARG_PARAMETER); - ACE_CHECK; + ACE_CHECK_RETURN(scheduler); // Register the servant with the Naming Context.... naming_context->rebind (schedule_name, scheduler.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + ACE_CHECK_RETURN(scheduler); } else { CORBA::Object_var tmp = naming_context->resolve (schedule_name ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + ACE_CHECK_RETURN(scheduler); scheduler = RtecScheduler::Scheduler::_narrow (tmp.in () ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + ACE_CHECK_RETURN(scheduler); } } } + return scheduler; } int diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h index 1e2b196e2b7..17c1063e019 100644 --- a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h +++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h @@ -16,6 +16,7 @@ #include "orbsvcs/FtRtecEventChannelAdminC.h" #include "orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h" #include "orbsvcs/FtRtEvent/EventChannel/FTEC_Become_Primary_Listener.h" +#include "orbsvcs/RtecSchedulerC.h" #include "TP_Task.h" namespace POA_RtecScheduler @@ -33,8 +34,10 @@ public: private: int parse_args (int argc, ACE_TCHAR* argv []); - void setup_scheduler(CosNaming::NamingContext_ptr naming_context - ACE_ENV_ARG_DECL); + RtecScheduler::Scheduler_var + setup_scheduler(CosNaming::NamingContext_ptr naming_context + ACE_ENV_ARG_DECL); + int report_factory(CORBA::ORB_ptr orb, FtRtecEventChannelAdmin::EventChannel_ptr ec); virtual void become_primary(); diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent.mpc b/TAO/orbsvcs/orbsvcs/FtRtEvent.mpc index e235b525687..7d5af01defa 100644 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent.mpc +++ b/TAO/orbsvcs/orbsvcs/FtRtEvent.mpc @@ -59,7 +59,7 @@ project (FTRT_ClientORB) : messaging, orbsvcslib, core { } } -project (FTRT_EventChannel) : orbsvcslib, ftrtevent { +project (FTRT_EventChannel) : orbsvcslib, ftrtevent, rtsched { sharedname = TAO_FTRT_EventChannel dynamicflags = TAO_FTRTEC_BUILD_DLL tagchecks = FTRT_EventChannel diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp index 859c6674b3f..022e5edb841 100644 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp +++ b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp @@ -21,10 +21,12 @@ ACE_RCSID (EventChannel, "$Id$") TAO_FTEC_Event_Channel::TAO_FTEC_Event_Channel(CORBA::ORB_var orb, - PortableServer::POA_var poa) + PortableServer::POA_var poa, + RtecScheduler::Scheduler_var scheduler) : orb_(orb) , poa_(poa) , ec_impl_(NULL) +, scheduler_(scheduler) { } @@ -118,6 +120,7 @@ TAO_FTEC_Event_Channel::activate(TAO_FTEC_Event_Channel::MEMBERSHIP membership TAO_EC_Event_Channel_Attributes attr (persistent_poa_.in (), persistent_poa_.in ()); + attr.scheduler = scheduler_.in(); TAO_FTEC_Event_Channel_Impl* ec; diff --git a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h index 3fc9d46a9c1..8bcdb0b9167 100644 --- a/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h +++ b/TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h @@ -14,6 +14,7 @@ #include "ftrtec_export.h" #include "orbsvcs/FtRtecEventChannelAdminS.h" +#include "orbsvcs/RtecSchedulerC.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once @@ -29,7 +30,8 @@ public: TAO_FTEC_Event_Channel(CORBA::ORB_var orb, - PortableServer::POA_var poa); + PortableServer::POA_var poa, + RtecScheduler::Scheduler_var scheduler); ~TAO_FTEC_Event_Channel(); @@ -175,6 +177,7 @@ private: CORBA::ORB_var orb_; PortableServer::POA_var poa_, persistent_poa_; TAO_FTEC_Event_Channel_Impl* ec_impl_; + RtecScheduler::Scheduler_var scheduler_; }; #endif |