summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhuangming <huangminghuang@users.noreply.github.com>2003-12-03 18:07:08 +0000
committerhuangming <huangminghuang@users.noreply.github.com>2003-12-03 18:07:08 +0000
commitaca361b90022e482e1d18f8ad93c49098dfecfc0 (patch)
tree21bfd94200577671f6fe640986bcc204f070e3ed
parent7f0db50760ef8431a3c306e5bdd4ed9030c37600 (diff)
downloadATCD-aca361b90022e482e1d18f8ad93c49098dfecfc0.tar.gz
*** empty log message ***
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp27
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h7
-rw-r--r--TAO/orbsvcs/orbsvcs/FtRtEvent.mpc2
-rw-r--r--TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.cpp5
-rw-r--r--TAO/orbsvcs/orbsvcs/FtRtEvent/EventChannel/FTEC_Event_Channel.h5
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