From 95b41d443d74580c53e0f9d9ad317c888b5f0c6b Mon Sep 17 00:00:00 2001 From: thrall Date: Fri, 18 Apr 2003 21:27:22 +0000 Subject: Merge EC_Kokyu_0 into main branch --- TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.cpp | 128 ++ TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.h | 130 ++ TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.i | 35 + TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp | 236 +++ TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.h | 72 + TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.i | 7 + TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp | 285 ++++ TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h | 130 ++ TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.i | 1 + .../orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp | 362 +++++ .../orbsvcs/Event/EC_Kokyu_Filter_Builder.h | 85 + .../orbsvcs/Event/EC_Kokyu_Filter_Builder.i | 8 + TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp | 96 ++ TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.h | 74 + TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.i | 8 + TAO/orbsvcs/orbsvcs/Event/rtkokyu_event_export.h | 50 + TAO/orbsvcs/orbsvcs/Makefile.RTKokyuEvent | 1626 ++++++++++++++++++++ TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsp | 231 +++ TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsw | 290 ++++ TAO/orbsvcs/orbsvcs/RtecScheduler.idl | 7 + TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp | 17 +- TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h | 5 + TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp | 12 + TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h | 8 + TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp | 186 +++ TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h | 50 + TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp | 42 + TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h | 7 + 28 files changed, 4187 insertions(+), 1 deletion(-) create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.cpp create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.h create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.i create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.h create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.i create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.i create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.h create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.i create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.h create mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.i create mode 100644 TAO/orbsvcs/orbsvcs/Event/rtkokyu_event_export.h create mode 100644 TAO/orbsvcs/orbsvcs/Makefile.RTKokyuEvent create mode 100644 TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsp create mode 100644 TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsw diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.cpp new file mode 100644 index 00000000000..7dfedd356f2 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.cpp @@ -0,0 +1,128 @@ +// $Id$ + +#include "EC_Kokyu_Dispatching.h" +#include "EC_Event_Channel.h" +#include "EC_ProxySupplier.h" +#include "EC_QOS_Info.h" + +#include "orbsvcs/Event_Service_Constants.h" +#include "orbsvcs/RtecSchedulerC.h" + +#include "ace/Sched_Params.h" + +#include "Kokyu/Kokyu.h" + +#if ! defined (__ACE_INLINE__) +#include "EC_Kokyu_Dispatching.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(Event, EC_Kokyu_Dispatching, "$Id$") + +TAO_EC_Kokyu_Dispatching::TAO_EC_Kokyu_Dispatching (TAO_EC_Event_Channel *ec) + : dispatcher_(0) +{ + CORBA::Object_var tmp = ec->scheduler (); + this->scheduler_ = RtecScheduler::Scheduler::_narrow (tmp.in ()); +} + +void +TAO_EC_Kokyu_Dispatching::activate (void) +{ + // Query the scheduler to get Config_Infos + RtecScheduler::Config_Info_Set_var configs; + this->scheduler_->get_config_infos(configs.out()); + ACE_TRY_CHECK; + + //might be no Config_Infos in the set (if none passed to scheduler_) + + // Convert RtecScheduler::Config_Info_Set to Kokyu::ConfigInfoSet + // OK to assume exact correspondence betwen Config_Info and ConfigInfo? + Kokyu::ConfigInfoSet kconfigs(configs->length()); + for(CORBA::ULong i=0; ilength(); ++i) { + kconfigs[i].preemption_priority_ = configs[i].preemption_priority; + kconfigs[i].thread_priority_ = configs[i].thread_priority; + switch (configs[i].dispatching_type) { + case RtecScheduler::STATIC_DISPATCHING: + kconfigs[i].dispatching_type_ = Kokyu::FIFO_DISPATCHING; + break; + case RtecScheduler::DEADLINE_DISPATCHING: + kconfigs[i].dispatching_type_ = Kokyu::DEADLINE_DISPATCHING; + break; + case RtecScheduler::LAXITY_DISPATCHING: + kconfigs[i].dispatching_type_ = Kokyu::LAXITY_DISPATCHING; + break; + } + } + + // Create Kokyu::Dispatcher using factory + this->dispatcher_ = Kokyu::Dispatcher_Factory::create_dispatcher(kconfigs); +} + +void +TAO_EC_Kokyu_Dispatching::shutdown (void) +{ + this->dispatcher_->shutdown(); + //delete dispatcher_? +} + +void +TAO_EC_Kokyu_Dispatching::push (TAO_EC_ProxyPushSupplier* proxy, + RtecEventComm::PushConsumer_ptr consumer, + const RtecEventComm::EventSet& event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL) +{ + RtecEventComm::EventSet event_copy = event; + this->push_nocopy (proxy, consumer, event_copy, qos_info ACE_ENV_ARG_PARAMETER); +} + +void +TAO_EC_Kokyu_Dispatching::push_nocopy (TAO_EC_ProxyPushSupplier* proxy, + RtecEventComm::PushConsumer_ptr consumer, + RtecEventComm::EventSet& event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL) +{ + if (this->dispatcher_ == 0) + this->activate(); + + // Create Dispatch_Command + TAO_EC_Kokyu_Push_Command *cmd = new TAO_EC_Kokyu_Push_Command(proxy,consumer,event); + + // Convert TAO_EC_QOS_Info to QoSDescriptor + RtecScheduler::RT_Info *rt_info = this->scheduler_->get(qos_info.rt_info); + Kokyu::QoSDescriptor qosd; + qosd.preemption_priority_ = qos_info.preemption_priority; + qosd.deadline_ = rt_info->period; + qosd.execution_time_ = rt_info->worst_case_execution_time; + + this->dispatcher_->dispatch(cmd,qosd); +} + +// **************************************************************** + +TAO_EC_Kokyu_Shutdown_Command::~TAO_EC_Kokyu_Shutdown_Command(void) +{ +} + +int +TAO_EC_Kokyu_Shutdown_Command::execute(void) +{ + return -1; +} + +// **************************************************************** + +TAO_EC_Kokyu_Push_Command::~TAO_EC_Kokyu_Push_Command(void) +{ + this->proxy_->_decr_refcnt (); +} + +int +TAO_EC_Kokyu_Push_Command::execute (ACE_ENV_SINGLE_ARG_DECL) +{ + this->proxy_->push_to_consumer (this->consumer_.in (), + this->event_ + ACE_ENV_ARG_PARAMETER); + return 0; +} diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.h b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.h new file mode 100644 index 00000000000..67efb7ce4b0 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.h @@ -0,0 +1,130 @@ +/* -*- C++ -*- */ +/** + * @file EC_Kokyu_Dispatching.h + * + * $Id$ + * + * @author Bryan Thrall (thrall@cs.wustl.edu) + * + * Based on previous work by Carlos O'Ryan (coryan@cs.wustl.edu) and + * Tim Harrison (harrison@cs.wustl.edu) and other members of the DOC group. + * More details can be found in: + * + * http://doc.ece.uci.edu/~coryan/EC/index.html + */ + +#ifndef TAO_EC_KOKYU_DISPATCHING_H +#define TAO_EC_KOKYU_DISPATCHING_H +#include "ace/pre.h" + +#include "EC_Dispatching.h" +#include "EC_ProxySupplier.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "orbsvcs/RtecSchedulerC.h" +#include "rtkokyu_event_export.h" + +#include "ace/Thread_Manager.h" + +#include "Kokyu/Kokyu.h" + +class TAO_EC_Event_Channel; + +/** + * @class TAO_EC_Kokyu_Dispatching + * + * @brief Dispatching strategy that minimizes priority inversion. + * + * This strategy uses multiple queues, each serviced by a thread + * at different priority. This minimizes priority inversion + * because the consumers at higher priority are serviced before + * consumers at lower priority. + * It is more flexible than using the supplier thread to dispatch + * because it allows high-priority suppliers to push events to + * low-priority consumers (and vice-versa). + * It also isolates the supplier threads from the time spent on + * upcalls to the consumer objects, making the system easier to + * analyze and schedule. + */ +class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Dispatching : public TAO_EC_Dispatching +{ +public: + /// The scheduler is used to find the range of priorities and similar + /// info. + TAO_EC_Kokyu_Dispatching (TAO_EC_Event_Channel* ec); + + // = The EC_Dispatching methods. + virtual void activate (void); + virtual void shutdown (void); + virtual void push (TAO_EC_ProxyPushSupplier* proxy, + RtecEventComm::PushConsumer_ptr consumer, + const RtecEventComm::EventSet& event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL); + virtual void push_nocopy (TAO_EC_ProxyPushSupplier* proxy, + RtecEventComm::PushConsumer_ptr consumer, + RtecEventComm::EventSet& event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL); + +private: + /// The dispatcher + Kokyu::Dispatcher* dispatcher_; + + /// The scheduler + RtecScheduler::Scheduler_var scheduler_; +}; + +// **************************************************************** + +class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Shutdown_Command : public Kokyu::Dispatch_Command +{ +public: + /// Constructor + TAO_EC_Kokyu_Shutdown_Command (void); + + /// Command callback + virtual int execute (void); + +protected: + //Protected so can't be put on stack; must be dynamically allocated + virtual ~TAO_EC_Kokyu_Shutdown_Command (void); +}; + +// **************************************************************** + +class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Push_Command : public Kokyu::Dispatch_Command +{ +public: + /// Constructor + TAO_EC_Kokyu_Push_Command (TAO_EC_ProxyPushSupplier* proxy, + RtecEventComm::PushConsumer_ptr consumer, + RtecEventComm::EventSet& event); + + /// Command callback + virtual int execute (void); + +protected: + //Protected so can't be put on stack; must be dynamically allocated + virtual ~TAO_EC_Kokyu_Push_Command (void); + +private: + /// The proxy + TAO_EC_ProxyPushSupplier* proxy_; + + /// The consumer connected to the proxy when the event was pushed. + RtecEventComm::PushConsumer_var consumer_; + + /// The event + RtecEventComm::EventSet event_; +}; + +#if defined (__ACE_INLINE__) +#include "EC_Kokyu_Dispatching.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" +#endif /* TAO_EC_KOKYU_DISPATCHING_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.i b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.i new file mode 100644 index 00000000000..c8a0f3cc6be --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.i @@ -0,0 +1,35 @@ +// $Id$ +// **************************************************************** + +ACE_INLINE +TAO_EC_Kokyu_Shutdown_Command:: + TAO_EC_Kokyu_Shutdown_Command (void) + : Kokyu::Dispatch_Command () +{ +} + +// **************************************************************** + +ACE_INLINE +TAO_EC_Kokyu_Push_Command::TAO_EC_Kokyu_Push_Command ( + TAO_EC_ProxyPushSupplier* proxy, + RtecEventComm::PushConsumer_ptr consumer, + RtecEventComm::EventSet& event) + : Kokyu::Dispatch_Command (), + proxy_ (proxy), + consumer_ (RtecEventComm::PushConsumer::_duplicate (consumer)) + +{ + // + // Efficient copy, steal the buffer from + // We cannot do this on the initialization because get_buffer() + // could get called first, effectively setting maximum() and + // length() to 0! + // + CORBA::ULong maximum = event.maximum (); + CORBA::ULong length = event.length (); + RtecEventComm::Event* buffer = event.get_buffer (1); + event_.replace (maximum, length, buffer, 1); + + this->proxy_->_incr_refcnt (); +} diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp new file mode 100644 index 00000000000..b023967030e --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp @@ -0,0 +1,236 @@ +// $Id$ + +#include "EC_Kokyu_Factory.h" +#include "EC_Kokyu_Dispatching.h" +#include "EC_Kokyu_Scheduling.h" +#include "EC_Kokyu_Filter_Builder.h" +#include "EC_Event_Channel.h" +#include "orbsvcs/RtecSchedulerC.h" + +#include "ace/Arg_Shifter.h" +#include "ace/Sched_Params.h" + +#if ! defined (__ACE_INLINE__) +#include "EC_Kokyu_Factory.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(Event, EC_Kokyu_Factory, "$Id$") + +TAO_EC_Kokyu_Factory::~TAO_EC_Kokyu_Factory (void) +{ +} + +int +TAO_EC_Kokyu_Factory::init_svcs (void) +{ + return ACE_Service_Config::static_svcs ()-> + insert (&ace_svc_desc_TAO_EC_Kokyu_Factory); +} + +int +TAO_EC_Kokyu_Factory::init (int argc, ACE_TCHAR* argv[]) +{ + ACE_Arg_Shifter arg_shifter (argc, argv); + + while (arg_shifter.is_anything_left ()) + { + const ACE_TCHAR* arg = arg_shifter.get_current (); + + if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECDispatching")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("reactive")) == 0) + { + this->dispatching_ = 0; + } + else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("mt")) == 0) + { + this->dispatching_ = 1; + } + else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("kokyu")) == 0) + { + this->dispatching_ = 2; + } + else + { + ACE_ERROR ((LM_ERROR, + ACE_LIB_TEXT("EC_Kokyu_Factory - ") + ACE_LIB_TEXT("unsupported dispatching <%s>\n"), + opt)); + } + arg_shifter.consume_arg (); + } + } + + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECFiltering")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("null")) == 0) + { + this->filtering_ = 0; + } + else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("basic")) == 0) + { + this->filtering_ = 1; + } + else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("prefix")) == 0) + { + this->filtering_ = 2; + } + else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("kokyu")) == 0) + { + this->filtering_ = 3; + } + else + { + ACE_ERROR ((LM_ERROR, + ACE_LIB_TEXT("EC_Kokyu_Factory - ") + ACE_LIB_TEXT("unsupported filtering <%s>\n"), + opt)); + } + arg_shifter.consume_arg (); + } + } + + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECTimeout")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("reactive")) == 0) + { + this->timeout_ = 0; + } +#if 0 + else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("kokyu")) == 0) + { + this->timeout_ = 1; + } +#endif /* 0 */ + else + { + ACE_ERROR ((LM_ERROR, + ACE_LIB_TEXT("EC_Kokyu_Factory - ") + ACE_LIB_TEXT("unsupported timeout <%s>\n"), + opt)); + } + arg_shifter.consume_arg (); + } + } + + else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECScheduling")) == 0) + { + arg_shifter.consume_arg (); + + if (arg_shifter.is_parameter_next ()) + { + const ACE_TCHAR* opt = arg_shifter.get_current (); + if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("null")) == 0) + { + this->scheduling_ = 0; + } + else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("group")) == 0) + { + this->scheduling_ = 1; + } + else if (ACE_OS::strcasecmp (opt, ACE_LIB_TEXT("kokyu")) == 0) + { + this->scheduling_ = 2; + } + else + { + ACE_ERROR ((LM_ERROR, + ACE_LIB_TEXT("EC_Kokyu_Factory - ") + ACE_LIB_TEXT("unsupported scheduling <%s>\n"), + opt)); + } + arg_shifter.consume_arg (); + } + } + + else + { + arg_shifter.ignore_arg (); + } + } + return this->TAO_EC_Default_Factory::init (argc, argv); +} + +int +TAO_EC_Kokyu_Factory::fini (void) +{ + return 0; +} + +// **************************************************************** + +TAO_EC_Dispatching* +TAO_EC_Kokyu_Factory::create_dispatching (TAO_EC_Event_Channel *ec) +{ + if (this->dispatching_ == 2) + return new TAO_EC_Kokyu_Dispatching (ec); + return this->TAO_EC_Default_Factory::create_dispatching (ec); +} + +TAO_EC_Filter_Builder* +TAO_EC_Kokyu_Factory::create_filter_builder (TAO_EC_Event_Channel *ec) +{ + if (this->filtering_ == 3) + return new TAO_EC_Kokyu_Filter_Builder (ec); + + return this->TAO_EC_Default_Factory::create_filter_builder (ec); +} + + +TAO_EC_Timeout_Generator* +TAO_EC_Kokyu_Factory::create_timeout_generator (TAO_EC_Event_Channel *ec) +{ +#if 0 + if (this->timeout_ == 1) + { + //Kokyu timeout generator? + } +#endif + return this->TAO_EC_Default_Factory::create_timeout_generator (ec); +} + +TAO_EC_Scheduling_Strategy* +TAO_EC_Kokyu_Factory::create_scheduling_strategy (TAO_EC_Event_Channel* ec) +{ + if (this->scheduling_ == 2) + { + CORBA::Object_var tmp = ec->scheduler (); + RtecScheduler::Scheduler_var scheduler = + RtecScheduler::Scheduler::_narrow (tmp.in ()); + return new TAO_EC_Kokyu_Scheduling (scheduler.in ()); + } + return this->TAO_EC_Default_Factory::create_scheduling_strategy (ec); +} + +// **************************************************************** + +ACE_STATIC_SVC_DEFINE (TAO_EC_Kokyu_Factory, + ACE_TEXT ("EC_Factory"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (TAO_EC_Kokyu_Factory), + ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ, + 0) +ACE_FACTORY_DEFINE (TAO_RTKokyuEvent, TAO_EC_Kokyu_Factory) + +// **************************************************************** + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + +#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.h b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.h new file mode 100644 index 00000000000..9eb866f7898 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.h @@ -0,0 +1,72 @@ +/* -*- C++ -*- */ +/** + * @file EC_Kokyu_Factory.h + * + * $Id$ + * + * @author Bryan Thrall (thrall@cs.wustl.edu) + * + * Based on previous work by Carlos O'Ryan (coryan@cs.wustl.edu) and + * Tim Harrison (harrison@cs.wustl.edu) and other members of the DOC group. + * More details can be found in: + * + * http://doc.ece.uci.edu/~coryan/EC/index.html + */ + +#ifndef TAO_EC_KOKYU_FACTORY_H +#define TAO_EC_KOKYU_FACTORY_H +#include "ace/pre.h" + +#include "EC_Default_Factory.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "rtkokyu_event_export.h" + +/** + * @class TAO_EC_Kokyu_Factory + * + * @brief Extend the default factory to support scheduling + * + */ +class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Factory : public TAO_EC_Default_Factory +{ +public: + /// Constructor + TAO_EC_Kokyu_Factory (void); + + /// Helper function to register the Kokyu factory into the service + /// configurator. + static int init_svcs (void); + + /// destructor... + virtual ~TAO_EC_Kokyu_Factory (void); + + // = The Service_Object entry points + virtual int init (int argc, ACE_TCHAR* argv[]); + virtual int fini (void); + + // = The EC_Factory methods + virtual TAO_EC_Dispatching* + create_dispatching (TAO_EC_Event_Channel*); + virtual TAO_EC_Filter_Builder* + create_filter_builder (TAO_EC_Event_Channel*); + virtual TAO_EC_Timeout_Generator* + create_timeout_generator (TAO_EC_Event_Channel*); + virtual TAO_EC_Scheduling_Strategy* + create_scheduling_strategy (TAO_EC_Event_Channel*); + +private: +}; + +#if defined (__ACE_INLINE__) +#include "EC_Kokyu_Factory.i" +#endif /* __ACE_INLINE__ */ + +ACE_STATIC_SVC_DECLARE (TAO_EC_Kokyu_Factory) +ACE_FACTORY_DECLARE (TAO_RTKokyuEvent, TAO_EC_Kokyu_Factory) + +#include "ace/post.h" +#endif /* TAO_EC_KOKYU_FACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.i b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.i new file mode 100644 index 00000000000..818dcde9254 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.i @@ -0,0 +1,7 @@ +// $Id$ + +ACE_INLINE +TAO_EC_Kokyu_Factory::TAO_EC_Kokyu_Factory (void) + : TAO_EC_Default_Factory () +{ +} diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp new file mode 100644 index 00000000000..96df4ee0ba8 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp @@ -0,0 +1,285 @@ +// $Id$ + +#include "EC_Kokyu_Filter.h" +#include "EC_QOS_Info.h" + +#if ! defined (__ACE_INLINE__) +#include "EC_Kokyu_Filter.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(Event, EC_Kokyu_Filter, "$Id$") + +TAO_EC_Kokyu_Filter:: + TAO_EC_Kokyu_Filter (const char* name, + RtecScheduler::handle_t rt_info, + RtecScheduler::Scheduler_ptr scheduler, + TAO_EC_Filter* body, + RtecScheduler::handle_t body_info, + RtecScheduler::handle_t parent_info, + RtecScheduler::Info_Type_t info_type) + + : rt_info_ (rt_info), + rt_info_computed_ (0), + name_ (name), + scheduler_ (RtecScheduler::Scheduler::_duplicate (scheduler)), + body_ (body), + body_info_ (body_info), + parent_info_ (parent_info), + info_type_ (info_type) +{ + this->adopt_child (this->body_); +} + +TAO_EC_Kokyu_Filter::~TAO_EC_Kokyu_Filter (void) +{ + delete this->body_; +} + +TAO_EC_Filter::ChildrenIterator +TAO_EC_Kokyu_Filter::begin (void) const +{ + return this->body_->begin (); +} + +TAO_EC_Filter::ChildrenIterator +TAO_EC_Kokyu_Filter::end (void) const +{ + return this->body_->end (); +} + +int +TAO_EC_Kokyu_Filter::size (void) const +{ + return this->body_->size (); +} + +int +TAO_EC_Kokyu_Filter::filter (const RtecEventComm::EventSet &event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL) +{ + return this->body_->filter (event, qos_info ACE_ENV_ARG_PARAMETER); +} + +int +TAO_EC_Kokyu_Filter::filter_nocopy (RtecEventComm::EventSet &event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL) +{ + return this->body_->filter_nocopy (event, qos_info ACE_ENV_ARG_PARAMETER); +} + +// This is private, so we can make it inline in the .cpp file... +void +TAO_EC_Kokyu_Filter::compute_qos_info (TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL) +{ + this->init_rt_info (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + qos_info.rt_info = this->rt_info_; + switch (this->info_type_) + { + default: + case RtecScheduler::DISJUNCTION: + break; + + case RtecScheduler::CONJUNCTION: + case RtecScheduler::OPERATION: + { + RtecScheduler::OS_Priority os_priority; + RtecScheduler::Preemption_Subpriority_t p_subpriority; + RtecScheduler::Preemption_Priority_t p_priority; + this->scheduler_->priority (this->rt_info_, + os_priority, + p_subpriority, + p_priority + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + qos_info.preemption_priority = p_priority; + } + } +} + +void +TAO_EC_Kokyu_Filter::push (const RtecEventComm::EventSet &event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL) +{ + if (this->parent () != 0) + { + this->compute_qos_info (qos_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->parent ()->push (event, qos_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } +} + +void +TAO_EC_Kokyu_Filter::push_nocopy (RtecEventComm::EventSet &event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL) +{ + if (this->parent () != 0) + { + this->compute_qos_info (qos_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->parent ()->push_nocopy (event, qos_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } +} + +void +TAO_EC_Kokyu_Filter::clear (void) +{ + this->body_->clear (); +} + +CORBA::ULong +TAO_EC_Kokyu_Filter::max_event_size (void) const +{ + return this->body_->max_event_size (); +} + +int +TAO_EC_Kokyu_Filter::can_match (const RtecEventComm::EventHeader& header) const +{ + return this->body_->can_match (header); +} + +int +TAO_EC_Kokyu_Filter::add_dependencies (const RtecEventComm::EventHeader& header, + const TAO_EC_QOS_Info &qos_info + ACE_ENV_ARG_DECL) +{ + this->init_rt_info (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + int matches = this->body_->add_dependencies (header, + qos_info + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + if (matches != 0) + { + this->scheduler_->add_dependency (this->rt_info_, qos_info.rt_info, 1, + RtecBase::TWO_WAY_CALL + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + RtecScheduler::RT_Info_var info = + this->scheduler_->get (qos_info.rt_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + ACE_DEBUG ((LM_DEBUG, "[%s] ----> [%s]\n", + this->name_.c_str (), + info->entry_point.in ())); + } + + ChildrenIterator end = this->end (); + for (ChildrenIterator i = this->begin (); i != end; ++i) + { + (*i)->add_dependencies (header, qos_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + } + return 0; +} + +void +TAO_EC_Kokyu_Filter::get_qos_info (TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL) +{ + this->init_rt_info (ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_CHECK; + + qos_info.rt_info = this->rt_info_; +} + +void +TAO_EC_Kokyu_Filter::init_rt_info (ACE_ENV_SINGLE_ARG_DECL) +{ + if (this->rt_info_computed_) + return; + +#if 0 //ifdef'ed by VS + + // Provide dummy values the scheduler will compute them based on the + // dependencies and the fact that this is a DISJUNCTION. + this->scheduler_->set (this->rt_info_, + RtecScheduler::VERY_LOW_CRITICALITY, + 0, // worst_cast_execution_time + 0, // typical_cast_execution_time + 0, // cached_cast_execution_time + 0, // period + RtecScheduler::VERY_LOW_IMPORTANCE, + 0, // quantum + 0, // threads + this->info_type_ + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; +#endif //ifdef'ed by VS + +#if 0 + ChildrenIterator end = this->end (); + for (ChildrenIterator i = this->begin (); i != end; ++i) + { + TAO_EC_Filter* filter = *i; + + TAO_EC_QOS_Info child; + filter->get_qos_info (child ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + this->scheduler_->add_dependency (this->rt_info_, + child.rt_info, 1, + RtecBase::TWO_WAY_CALL + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + RtecScheduler::RT_Info_var info = + this->scheduler_->get (child.rt_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + ACE_DEBUG ((LM_DEBUG, "[%s] ----> [%s]\n", + info->entry_point.in (), + this->name_.c_str ())); + + } +#endif /* 0 */ + +#if 0 //ifdef changed from 1 to 0 by VS + if (this->body_info_ != this->rt_info_) + { + this->scheduler_->add_dependency (this->rt_info_, + this->body_info_, + 1, + RtecBase::TWO_WAY_CALL + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + RtecScheduler::RT_Info_var info = + this->scheduler_->get (this->body_info_ ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + ACE_DEBUG ((LM_DEBUG, "[%s] ----> [%s]\n", + info->entry_point.in (), + this->name_.c_str ())); + } +#endif /* 0 */ + +#if 0 //ifdef changed from 1 to 0 by VS + this->scheduler_->add_dependency (this->parent_info_, + this->rt_info_, + 1, + RtecBase::TWO_WAY_CALL + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + RtecScheduler::RT_Info_var info = + this->scheduler_->get (this->parent_info_ ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + ACE_DEBUG ((LM_DEBUG, "[%s] ----> [%s]\n", + this->name_.c_str (), + info->entry_point.in ())); +#endif /* 0 */ + + this->rt_info_computed_ = 1; +} diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h new file mode 100644 index 00000000000..f0f6d931ba3 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h @@ -0,0 +1,130 @@ +/* -*- C++ -*- */ +/** + * @file EC_Kokyu_Filter.h + * + * $Id$ + * + * @author Carlos O'Ryan (coryan@cs.wustl.edu) + * + * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and + * other members of the DOC group. More details can be found in: + * + * http://doc.ece.uci.edu/~coryan/EC/index.html + */ + +#ifndef TAO_EC_KOKYU_FILTER_H +#define TAO_EC_KOKYU_FILTER_H +#include "ace/pre.h" + +#include "EC_Filter.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "orbsvcs/RtecSchedulerC.h" +#include "rtkokyu_event_export.h" + +/** + * @class TAO_EC_Kokyu_Filter + * + * @brief Decorate a filter with scheduling information + * + * This filter decorates a regular filter with scheduling + * information. It creates a new RT_Info entry for the filter and + * it adds the dependencies between the filter and any childrens + * it may have. + * + *

Memory Management

+ * It assumes ownership of the children. + */ +class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Filter : public TAO_EC_Filter +{ +public: + /** + * Constructor. + * It assumes ownership of the , makes a copy of the other + * parameters + */ + TAO_EC_Kokyu_Filter (const char* name, + RtecScheduler::handle_t rt_info, + RtecScheduler::Scheduler_ptr scheduler, + TAO_EC_Filter* body, + RtecScheduler::handle_t body_info, + RtecScheduler::handle_t parent_info, + RtecScheduler::Info_Type_t info_type); + + /// Destructor + virtual ~TAO_EC_Kokyu_Filter (void); + + // = The TAO_EC_Filter methods, please check the documentation in + // TAO_EC_Filter. + virtual ChildrenIterator begin (void) const; + virtual ChildrenIterator end (void) const; + virtual int size (void) const; + virtual int filter (const RtecEventComm::EventSet& event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL); + virtual int filter_nocopy (RtecEventComm::EventSet& event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL); + virtual void push (const RtecEventComm::EventSet& event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL); + virtual void push_nocopy (RtecEventComm::EventSet& event, + TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL); + virtual void clear (void); + virtual CORBA::ULong max_event_size (void) const; + virtual int can_match (const RtecEventComm::EventHeader& header) const; + virtual int add_dependencies (const RtecEventComm::EventHeader& header, + const TAO_EC_QOS_Info &qos_info + ACE_ENV_ARG_DECL); + virtual void get_qos_info (TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL); + +private: + ACE_UNIMPLEMENTED_FUNC (TAO_EC_Kokyu_Filter + (const TAO_EC_Kokyu_Filter&)) + ACE_UNIMPLEMENTED_FUNC (TAO_EC_Kokyu_Filter& operator= + (const TAO_EC_Kokyu_Filter&)) + + /// Initialize our RT_Info handle and dependencies + void init_rt_info (ACE_ENV_SINGLE_ARG_DECL); + + /// Compute a new qos_info to push up. + void compute_qos_info (TAO_EC_QOS_Info& qos_info + ACE_ENV_ARG_DECL); + +private: + /// The RT_Info handle for this object + RtecScheduler::handle_t rt_info_; + + /// Has the Scheduler been updated? + int rt_info_computed_; + + /// Our operation name + ACE_CString name_; + + /// The scheduler we are going to use + RtecScheduler::Scheduler_var scheduler_; + + /// The implementation + TAO_EC_Filter* body_; + + /// The RT_Info handle for the body + RtecScheduler::handle_t body_info_; + + /// The RT_Info handle for the parent + RtecScheduler::handle_t parent_info_; + + /// Required for the scheduling service + RtecScheduler::Info_Type_t info_type_; +}; + +#if defined (__ACE_INLINE__) +#include "EC_Kokyu_Filter.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" +#endif /* TAO_EC_KOKYU_FILTER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.i b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.i new file mode 100644 index 00000000000..cfa1da318d3 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.i @@ -0,0 +1 @@ +// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp new file mode 100644 index 00000000000..397f39b57e0 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp @@ -0,0 +1,362 @@ +// $Id$ + +#include "EC_Kokyu_Filter.h" +#include "orbsvcs/Event_Service_Constants.h" +#include "EC_Kokyu_Filter_Builder.h" +#include "EC_Type_Filter.h" +#include "EC_Conjunction_Filter.h" +#include "EC_Disjunction_Filter.h" +#include "EC_Timeout_Filter.h" +#include "EC_Event_Channel.h" + +#if ! defined (__ACE_INLINE__) +#include "EC_Kokyu_Filter_Builder.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(Event, EC_Kokyu_Filter_Builder, "$Id$") + +TAO_EC_Kokyu_Filter_Builder::~TAO_EC_Kokyu_Filter_Builder (void) +{ +} + +TAO_EC_Filter* +TAO_EC_Kokyu_Filter_Builder::build ( + TAO_EC_ProxyPushSupplier *supplier, + RtecEventChannelAdmin::ConsumerQOS& qos + ACE_ENV_ARG_DECL) const +{ + CORBA::ULong pos = 0; + CORBA::Object_var tmp = + this->event_channel_->scheduler (); + + RtecScheduler::Scheduler_var scheduler = + RtecScheduler::Scheduler::_narrow (tmp.in () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + +#if 0 //by VS + // @@ How do we figure out which parent??? + RtecScheduler::handle_t parent_info = + scheduler->lookup ("Dispatching_Task-250000.us" ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); +#endif + + return this->recursive_build (supplier, qos, pos, + scheduler.in (), + 0 //parent_info + ACE_ENV_ARG_PARAMETER); +} + +TAO_EC_Filter* +TAO_EC_Kokyu_Filter_Builder::recursive_build ( + TAO_EC_ProxyPushSupplier *supplier, + RtecEventChannelAdmin::ConsumerQOS& qos, + CORBA::ULong& pos, + RtecScheduler::Scheduler_ptr scheduler, + RtecScheduler::handle_t parent_info + ACE_ENV_ARG_DECL) const +{ + const RtecEventComm::Event& e = qos.dependencies[pos].event; + + if (e.header.type == ACE_ES_CONJUNCTION_DESIGNATOR) + { + CORBA::ULong npos = pos; + ACE_CString name; + this->recursive_name (qos, npos, + scheduler, name + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + RtecScheduler::handle_t rt_info = + scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + pos++; // Consume the designator + CORBA::ULong n = this->count_children (qos, pos); + + TAO_EC_Filter** children; + ACE_NEW_RETURN (children, TAO_EC_Filter*[n], 0); + for (CORBA::ULong i = 0; i != n; ++i) + { + children[i] = this->recursive_build (supplier, qos, pos, + scheduler, + rt_info + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + } + + TAO_EC_Kokyu_Filter *filter; + ACE_NEW_RETURN (filter, + TAO_EC_Kokyu_Filter (name.c_str (), + rt_info, + scheduler, + new TAO_EC_Conjunction_Filter(children, + n), + rt_info, + parent_info, + RtecScheduler::CONJUNCTION), + 0); + TAO_EC_QOS_Info qos_info; + filter->get_qos_info (qos_info ACE_ENV_ARG_PARAMETER); + // @@ + ACE_CHECK_RETURN (0); + return filter; + } + + else if (e.header.type == ACE_ES_DISJUNCTION_DESIGNATOR) + { + CORBA::ULong npos = pos; + ACE_CString name; + this->recursive_name (qos, npos, + scheduler, name + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + RtecScheduler::handle_t rt_info = + scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + pos++; // Consume the designator + CORBA::ULong n = this->count_children (qos, pos); + + TAO_EC_Filter** children; + ACE_NEW_RETURN (children, TAO_EC_Filter*[n], 0); + for (CORBA::ULong i = 0; i != n; ++i) + { + children[i] = this->recursive_build (supplier, qos, pos, + scheduler, + rt_info + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + } + TAO_EC_Kokyu_Filter *filter; + ACE_NEW_RETURN (filter, + TAO_EC_Kokyu_Filter (name.c_str (), + rt_info, + scheduler, + new TAO_EC_Disjunction_Filter (children, + n), + rt_info, + parent_info, + RtecScheduler::DISJUNCTION), + 0); + + TAO_EC_QOS_Info qos_info; + filter->get_qos_info (qos_info ACE_ENV_ARG_PARAMETER); + // @@ + ACE_CHECK_RETURN (0); + return filter; + } +#if 1 //added by VS + else if (e.header.type == ACE_ES_GLOBAL_DESIGNATOR) + { + CORBA::ULong npos = pos+1; + const RtecEventComm::Event& e = qos.dependencies[npos].event; + + RtecScheduler::handle_t body_info = qos.dependencies[npos].rt_info; + + RtecScheduler::RT_Info_var info = + scheduler->get (body_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + ACE_CString name = info->entry_point.in (); + + TAO_EC_Kokyu_Filter *filter; + ACE_NEW_RETURN (filter, + TAO_EC_Kokyu_Filter (name.c_str (), + body_info, + scheduler, + new TAO_EC_Type_Filter (e.header), + body_info, + 0, + RtecScheduler::OPERATION), + 0); + + return filter; + } +#endif + + else if (e.header.type == ACE_ES_EVENT_TIMEOUT + || e.header.type == ACE_ES_EVENT_INTERVAL_TIMEOUT + || e.header.type == ACE_ES_EVENT_DEADLINE_TIMEOUT) + { + pos++; + + // @@ We need a unique name for each timeout, assigned by the + // application? + char buf[64]; + ACE_OS::sprintf (buf, "TIMEOUT:%u", + ACE_static_cast (u_int, + (e.header.creation_time / 10000))); + ACE_CString name = buf; + + TAO_EC_QOS_Info qos_info; + qos_info.rt_info = + scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + // Convert the time to the proper units.... + RtecScheduler::Period_t period = + ACE_static_cast (RtecScheduler::Period_t, + e.header.creation_time / 10); + + scheduler->set (qos_info.rt_info, + RtecScheduler::VERY_LOW_CRITICALITY, + 0, // worst_cast_execution_time + 0, // typical_cast_execution_time + 0, // cached_cast_execution_time + period, + RtecScheduler::VERY_LOW_IMPORTANCE, + 0, // quantum + 1, // threads + RtecScheduler::OPERATION + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + scheduler->add_dependency (qos_info.rt_info, + parent_info, + 1, + RtecBase::TWO_WAY_CALL + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + return new TAO_EC_Timeout_Filter (this->event_channel_, + supplier, + qos_info, + e.header.type, + e.header.creation_time); + } + + RtecScheduler::handle_t body_info = qos.dependencies[pos].rt_info; + + RtecScheduler::RT_Info_var info = + scheduler->get (body_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + ACE_CString name = info->entry_point.in (); + name += "#rep"; + + RtecScheduler::handle_t rt_info = + scheduler->create (name.c_str () ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (0); + + pos++; + TAO_EC_Kokyu_Filter *filter; + ACE_NEW_RETURN (filter, + TAO_EC_Kokyu_Filter (name.c_str (), + rt_info, + scheduler, + new TAO_EC_Type_Filter (e.header), + body_info, + parent_info, + RtecScheduler::OPERATION), + 0); + + TAO_EC_QOS_Info qos_info; + filter->get_qos_info (qos_info ACE_ENV_ARG_PARAMETER); + // @@ + ACE_CHECK_RETURN (0); + return filter; +} + +void +TAO_EC_Kokyu_Filter_Builder:: recursive_name ( + RtecEventChannelAdmin::ConsumerQOS& qos, + CORBA::ULong& pos, + RtecScheduler::Scheduler_ptr scheduler, + ACE_CString& name + ACE_ENV_ARG_DECL) const +{ + const RtecEventComm::Event& e = qos.dependencies[pos].event; + + if (e.header.type == ACE_ES_CONJUNCTION_DESIGNATOR) + { + pos++; // Consume the designator + CORBA::ULong n = this->count_children (qos, pos); + + for (CORBA::ULong i = 0; i != n; ++i) + { + ACE_CString child_name; + this->recursive_name (qos, pos, + scheduler, + child_name + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + if (i == 0) + name += "("; + else + name += "&&"; + name += child_name; + } + name += ")"; + return; + } + + else if (e.header.type == ACE_ES_DISJUNCTION_DESIGNATOR) + { + pos++; // Consume the designator + CORBA::ULong n = this->count_children (qos, pos); + + for (CORBA::ULong i = 0; i != n; ++i) + { + ACE_CString child_name; + + this->recursive_name (qos, pos, + scheduler, + child_name + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + if (i == 0) + name += "("; + else + name += "||"; + name += child_name; + } + name += ")"; + return; + } + + else if (e.header.type == ACE_ES_EVENT_TIMEOUT + || e.header.type == ACE_ES_EVENT_INTERVAL_TIMEOUT + || e.header.type == ACE_ES_EVENT_DEADLINE_TIMEOUT) + { + pos++; + + char buf[64]; + ACE_OS::sprintf (buf, "TIMEOUT:%u", + ACE_static_cast (u_int, + (e.header.creation_time / 10000))); + name = buf; + + return; + } + + RtecScheduler::handle_t body_info = qos.dependencies[pos].rt_info; + + RtecScheduler::RT_Info_var info = + scheduler->get (body_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + + name = info->entry_point.in (); + name += "#rep"; + + pos++; +} + +CORBA::ULong +TAO_EC_Kokyu_Filter_Builder:: + count_children (RtecEventChannelAdmin::ConsumerQOS& qos, + CORBA::ULong pos) const +{ + CORBA::ULong l = qos.dependencies.length (); + CORBA::ULong i; + for (i = pos; i != l; ++i) + { + const RtecEventComm::Event& e = qos.dependencies[i].event; + if (e.header.type == ACE_ES_CONJUNCTION_DESIGNATOR + || e.header.type == ACE_ES_DISJUNCTION_DESIGNATOR) + break; + } + return i - 1; +} diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.h b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.h new file mode 100644 index 00000000000..662a0f584d3 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.h @@ -0,0 +1,85 @@ +/* -*- C++ -*- */ +/** + * @file EC_Kokyu_Filter_Builder.h + * + * $Id$ + * + * @author Bryan Thrall (thrall@cs.wustl.edu) + * + * Based on previous work by Carlos O'Ryan (coryan@cs.wustl.edu) and + * Tim Harrison (harrison@cs.wustl.edu) and other members of the DOC group. + * More details can be found in: + * + * http://doc.ece.uci.edu/~coryan/EC/index.html + */ + +#ifndef TAO_EC_KOKYU_FILTER_BUILDER_H +#define TAO_EC_KOKYU_FILTER_BUILDER_H +#include "ace/pre.h" + +#include "EC_Filter_Builder.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "rtkokyu_event_export.h" + +class TAO_EC_Filter; +class TAO_EC_Event_Channel; + +/** + * @class TAO_EC_Kokyu_Filter_Builder + * + * @brief Implement a builder for the fundamental filters. + * + * The sched filtering mechanisms in the Event channel + * (source/type based filtering + disjunctions and conjunctions) + * are constructed using this class. + */ +class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Filter_Builder : public TAO_EC_Filter_Builder +{ +public: + /// constructor. + TAO_EC_Kokyu_Filter_Builder (TAO_EC_Event_Channel* ec); + + /// destructor... + virtual ~TAO_EC_Kokyu_Filter_Builder (void); + + // = The TAO_EC_Filter_Builder methods... + TAO_EC_Filter* build (TAO_EC_ProxyPushSupplier *supplier, + RtecEventChannelAdmin::ConsumerQOS& qos + ACE_ENV_ARG_DECL) const; + +private: + /// Recursively build the filter tree. + TAO_EC_Filter* recursive_build (TAO_EC_ProxyPushSupplier *supplier, + RtecEventChannelAdmin::ConsumerQOS& qos, + CORBA::ULong& pos, + RtecScheduler::Scheduler_ptr scheduler, + RtecScheduler::handle_t parent_info + ACE_ENV_ARG_DECL) const; + + /// Build the name recursively... + void recursive_name (RtecEventChannelAdmin::ConsumerQOS& qos, + CORBA::ULong& pos, + RtecScheduler::Scheduler_ptr scheduler, + ACE_CString &name + ACE_ENV_ARG_DECL) const; + + /// Count the number of children of the current node, i.e. until a + /// conjunction or disjunction starts. + CORBA::ULong count_children (RtecEventChannelAdmin::ConsumerQOS& qos, + CORBA::ULong pos) const; + +private: + /// The event channel. + TAO_EC_Event_Channel* event_channel_; +}; + +#if defined (__ACE_INLINE__) +#include "EC_Kokyu_Filter_Builder.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" +#endif /* TAO_EC_KOKYU_FILTER_BUILDER_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.i b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.i new file mode 100644 index 00000000000..3d0bc98e6d9 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.i @@ -0,0 +1,8 @@ +// $Id$ + +ACE_INLINE +TAO_EC_Kokyu_Filter_Builder:: + TAO_EC_Kokyu_Filter_Builder (TAO_EC_Event_Channel *ec) + : event_channel_ (ec) +{ +} diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp new file mode 100644 index 00000000000..bd1d0dd9f46 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp @@ -0,0 +1,96 @@ +// $Id$ + +#include "EC_Kokyu_Scheduling.h" +#include "EC_QOS_Info.h" +#include "EC_ProxyConsumer.h" +#include "EC_ProxySupplier.h" +#include "EC_Supplier_Filter.h" + +#if ! defined (__ACE_INLINE__) +#include "EC_Kokyu_Scheduling.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(Event, EC_Kokyu_Scheduling, "$Id$") + +TAO_EC_Kokyu_Scheduling::~TAO_EC_Kokyu_Scheduling (void) +{ +} + +void +TAO_EC_Kokyu_Scheduling::add_proxy_supplier_dependencies ( + TAO_EC_ProxyPushSupplier *supplier, + TAO_EC_ProxyPushConsumer *consumer + ACE_ENV_ARG_DECL) +{ + ACE_DEBUG ((LM_DEBUG, "add_proxy_supplier_dependencies - %x %x\n", + supplier, consumer)); + const RtecEventChannelAdmin::SupplierQOS& qos = + consumer->publications (); + for (CORBA::ULong i = 0; i < qos.publications.length (); ++i) + { + const RtecEventComm::EventHeader &header = + qos.publications[i].event.header; + TAO_EC_QOS_Info qos_info; + qos_info.rt_info = qos.publications[i].dependency_info.rt_info; + + RtecScheduler::OS_Priority os_priority; + RtecScheduler::Preemption_Subpriority_t p_subpriority; + RtecScheduler::Preemption_Priority_t p_priority; + this->scheduler_->priority (qos_info.rt_info, + os_priority, + p_subpriority, + p_priority + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + qos_info.preemption_priority = p_priority; + + supplier->add_dependencies (header, qos_info ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } +} + +void +TAO_EC_Kokyu_Scheduling::schedule_event (const RtecEventComm::EventSet &event, + TAO_EC_ProxyPushConsumer *consumer, + TAO_EC_Supplier_Filter *filter + ACE_ENV_ARG_DECL) +{ + RtecEventChannelAdmin::SupplierQOS qos = + consumer->publications (); + + for (CORBA::ULong j = 0; j != event.length (); ++j) + { + const RtecEventComm::Event& e = event[j]; + RtecEventComm::Event* buffer = + ACE_const_cast(RtecEventComm::Event*, &e); + RtecEventComm::EventSet single_event (1, 1, buffer, 0); + + TAO_EC_QOS_Info qos_info; + + for (CORBA::ULong i = 0; i != qos.publications.length (); ++i) + { + const RtecEventComm::EventHeader &qos_header = + qos.publications[i].event.header; + + if (TAO_EC_Filter::matches (e.header, qos_header) == 0) + continue; + + qos_info.rt_info = qos.publications[i].dependency_info.rt_info; + + RtecScheduler::OS_Priority os_priority; + RtecScheduler::Preemption_Subpriority_t p_subpriority; + RtecScheduler::Preemption_Priority_t p_priority; + this->scheduler_->priority (qos_info.rt_info, + os_priority, + p_subpriority, + p_priority + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + qos_info.preemption_priority = p_priority; + } + + filter->push_scheduled_event (single_event, qos_info + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + } +} diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.h b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.h new file mode 100644 index 00000000000..12ce012c36c --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.h @@ -0,0 +1,74 @@ +/* -*- C++ -*- */ +/** + * @file EC_Kokyu_Scheduling.h + * + * $Id$ + * + * @author Bryan Thrall (thrall@cs.wustl.edu) + * + * Based on previous work by Carlos O'Ryan (coryan@cs.wustl.edu) and + * Tim Harrison (harrison@cs.wustl.edu) and other members of the DOC group. + * More details can be found in: + * + * http://doc.ece.uci.edu/~coryan/EC/index.html + */ + +#ifndef TAO_EC_KOKYU_SCHEDULING_H +#define TAO_EC_KOKYU_SCHEDULING_H +#include "ace/pre.h" + +#include "EC_Scheduling_Strategy.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "orbsvcs/RtecSchedulerC.h" +#include "rtkokyu_event_export.h" + +/** + * @class TAO_EC_Kokyu_Scheduling + * + * @brief A scheduling strategy that uses TAO's real-time scheduler + * + * This implementation of the Scheduling_Strategy uses TAO's + * real-time scheduler. + */ +class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Scheduling : public TAO_EC_Scheduling_Strategy +{ +public: + /// Constructor. + TAO_EC_Kokyu_Scheduling (RtecScheduler::Scheduler_ptr scheduler); + + /// Destructor + virtual ~TAO_EC_Kokyu_Scheduling (void); + + virtual void add_proxy_supplier_dependencies ( + TAO_EC_ProxyPushSupplier *supplier, + TAO_EC_ProxyPushConsumer *consumer + ACE_ENV_ARG_DECL); + virtual void schedule_event (const RtecEventComm::EventSet &event, + TAO_EC_ProxyPushConsumer *consumer, + TAO_EC_Supplier_Filter *filter + ACE_ENV_ARG_DECL); + +private: + ACE_UNIMPLEMENTED_FUNC (TAO_EC_Kokyu_Scheduling + (const TAO_EC_Kokyu_Scheduling&)) + ACE_UNIMPLEMENTED_FUNC (TAO_EC_Kokyu_Scheduling& operator= + (const TAO_EC_Kokyu_Scheduling&)) + + /// Initialize our RT_Info handle and dependencies + void init_rt_info (ACE_ENV_SINGLE_ARG_DECL); + +private: + /// The scheduler we are going to use + RtecScheduler::Scheduler_var scheduler_; +}; + +#if defined (__ACE_INLINE__) +#include "EC_Kokyu_Scheduling.i" +#endif /* __ACE_INLINE__ */ + +#include "ace/post.h" +#endif /* TAO_EC_KOKYU_SCHEDULING_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.i b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.i new file mode 100644 index 00000000000..b9dbd7d9dfc --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.i @@ -0,0 +1,8 @@ +// $Id$ + +ACE_INLINE +TAO_EC_Kokyu_Scheduling::TAO_EC_Kokyu_Scheduling ( + RtecScheduler::Scheduler_ptr scheduler) + : scheduler_ (RtecScheduler::Scheduler::_duplicate (scheduler)) +{ +} diff --git a/TAO/orbsvcs/orbsvcs/Event/rtkokyu_event_export.h b/TAO/orbsvcs/orbsvcs/Event/rtkokyu_event_export.h new file mode 100644 index 00000000000..efdbe7aed65 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Event/rtkokyu_event_export.h @@ -0,0 +1,50 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl TAO_RTKokyuEvent +// ------------------------------ +#ifndef TAO_RTKOKYUEVENT_EXPORT_H +#define TAO_RTKOKYUEVENT_EXPORT_H + +#include "ace/config-all.h" + +#if !defined (TAO_RTKOKYUEVENT_HAS_DLL) +# define TAO_RTKOKYUEVENT_HAS_DLL 1 +#endif /* ! TAO_RTKOKYUEVENT_HAS_DLL */ + +#if defined (TAO_RTKOKYUEVENT_HAS_DLL) && (TAO_RTKOKYUEVENT_HAS_DLL == 1) +# if defined (TAO_RTKOKYUEVENT_BUILD_DLL) +# define TAO_RTKokyuEvent_Export ACE_Proper_Export_Flag +# define TAO_RTKOKYUEVENT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define TAO_RTKOKYUEVENT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* TAO_RTKOKYUEVENT_BUILD_DLL */ +# define TAO_RTKokyuEvent_Export ACE_Proper_Import_Flag +# define TAO_RTKOKYUEVENT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define TAO_RTKOKYUEVENT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* TAO_RTKOKYUEVENT_BUILD_DLL */ +#else /* TAO_RTKOKYUEVENT_HAS_DLL == 1 */ +# define TAO_RTKokyuEvent_Export +# define TAO_RTKOKYUEVENT_SINGLETON_DECLARATION(T) +# define TAO_RTKOKYUEVENT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* TAO_RTKOKYUEVENT_HAS_DLL == 1 */ + +// Set TAO_RTKOKYUEVENT_NTRACE = 0 to turn on library specific tracing even if +// tracing is turned off for ACE. +#if !defined (TAO_RTKOKYUEVENT_NTRACE) +# if (ACE_NTRACE == 1) +# define TAO_RTKOKYUEVENT_NTRACE 1 +# else /* (ACE_NTRACE == 1) */ +# define TAO_RTKOKYUEVENT_NTRACE 0 +# endif /* (ACE_NTRACE == 1) */ +#endif /* !TAO_RTKOKYUEVENT_NTRACE */ + +#if (TAO_RTKOKYUEVENT_NTRACE == 1) +# define TAO_RTKOKYUEVENT_TRACE(X) +#else /* (TAO_RTKOKYUEVENT_NTRACE == 1) */ +# define TAO_RTKOKYUEVENT_TRACE(X) ACE_TRACE_IMPL(X) +#endif /* (TAO_RTKOKYUEVENT_NTRACE == 1) */ + +#endif /* TAO_RTKOKYUEVENT_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/orbsvcs/orbsvcs/Makefile.RTKokyuEvent b/TAO/orbsvcs/orbsvcs/Makefile.RTKokyuEvent new file mode 100644 index 00000000000..d54bab20131 --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/Makefile.RTKokyuEvent @@ -0,0 +1,1626 @@ +#---------------------------------------------------------------------------- +# +# $Id$ +# +#---------------------------------------------------------------------------- +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +MAKEFILE = Makefile.RTKokyuEvent +LIBNAME = libTAO_RTKokyuEvent +LIB = $(LIBNAME).a +SHLIB = $(LIBNAME).$(SOEXT) + +VPATH=.:Event + +ACE_SHLIBS = -lTAO_RTEvent -lTAO_RTSched -lKokyu -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_PortableServer -lTAO -lACE + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(TAO_ROOT)/rules.tao.GNU + +# On non-Windows environment, we should at least define +# the export_include IDL flag. +override TAO_IDLFLAGS += + +IDL_FILES += + +CPP_SRCS += \ + Event/EC_Kokyu_Filter \ + Event/EC_Kokyu_Filter_Builder \ + Event/EC_Kokyu_Scheduling \ + Event/EC_Kokyu_Dispatching \ + Event/EC_Kokyu_Factory + +IDL_SRC = \ + $(addsuffix S.cpp, $(IDL_FILES)) \ + $(addsuffix C.cpp, $(IDL_FILES)) +FILES = $(CPP_SRCS) +DEFS = $(addsuffix .h,$(FILES)) +LSRC = $(addsuffix .cpp,$(FILES)) $(IDL_SRC) + +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU +include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +#---------------------------------------------------------------------------- +# Local targets (and local hacks) +#---------------------------------------------------------------------------- + +LDFLAGS += -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs/orbsvcs +CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs \ + -I$(TAO_ROOT)/orbsvcs/orbsvcs/ESF + +ifeq ($(shared_libs),1) +ifneq ($(SHLIB),) +CPPFLAGS += -DTAO_RTKOKYUEVENT_BUILD_DLL +endif +endif +ifeq ($(static_libs),1) +ifneq ($(LIB),) +CPPFLAGS += -DTAO_AS_STATIC_LIBS -DACE_AS_STATIC_LIBS +endif +endif + +# +# Extra dependencies not caught by make depend. +# + +.PRECIOUS: $(foreach file, $(IDL_FILES), $(foreach ext, $(IDL_EXT), $(file)$(ext)))) + +realclean: clean + -$(RM) $(foreach file, $(IDL_FILES), $(foreach ext, $(IDL_EXT), $(file)$(ext))) + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/EC_Kokyu_Filter.o .obj/EC_Kokyu_Filter.so .shobj/EC_Kokyu_Filter.o .shobj/EC_Kokyu_Filter.so: Event/EC_Kokyu_Filter.cpp Event/EC_Kokyu_Filter.h \ + $(ACE_ROOT)/ace/pre.h Event/EC_Filter.h \ + RtecEventCommC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Time_Value.inl \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.i \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Any_T.h \ + $(TAO_ROOT)/tao/Any.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.i \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/AbstractBase.h \ + $(TAO_ROOT)/tao/AbstractBase.inl \ + $(TAO_ROOT)/tao/Any_T.inl \ + $(TAO_ROOT)/tao/Any_T.cpp \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/ServicesC.h \ + $(TAO_ROOT)/tao/ServicesC.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/ObjectIdListC.h \ + $(TAO_ROOT)/tao/ObjectIdListC.i \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/WrongTransactionC.i \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + Event/event_export.h \ + TimeBaseC.h \ + svc_utils_export.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + TimeBaseC.i \ + RtecDefaultEventDataC.h \ + RtecDefaultEventDataC.i \ + RtecEventCommC.i \ + Event/event_export.h Event/EC_Filter.i \ + RtecSchedulerC.h \ + Sched/sched_export.h \ + RtecBaseC.h \ + RtecBaseC.i \ + RtecSchedulerC.i \ + Event/rtkokyu_event_export.h Event/EC_Kokyu_Filter.i \ + Event/EC_QOS_Info.h Event/EC_QOS_Info.i + +.obj/EC_Kokyu_Filter_Builder.o .obj/EC_Kokyu_Filter_Builder.so .shobj/EC_Kokyu_Filter_Builder.o .shobj/EC_Kokyu_Filter_Builder.so: Event/EC_Kokyu_Filter_Builder.cpp \ + Event/EC_Kokyu_Filter.h \ + $(ACE_ROOT)/ace/pre.h Event/EC_Filter.h \ + RtecEventCommC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Time_Value.inl \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.i \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Any_T.h \ + $(TAO_ROOT)/tao/Any.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.i \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/AbstractBase.h \ + $(TAO_ROOT)/tao/AbstractBase.inl \ + $(TAO_ROOT)/tao/Any_T.inl \ + $(TAO_ROOT)/tao/Any_T.cpp \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/ServicesC.h \ + $(TAO_ROOT)/tao/ServicesC.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/ObjectIdListC.h \ + $(TAO_ROOT)/tao/ObjectIdListC.i \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/WrongTransactionC.i \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + Event/event_export.h \ + TimeBaseC.h \ + svc_utils_export.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + TimeBaseC.i \ + RtecDefaultEventDataC.h \ + RtecDefaultEventDataC.i \ + RtecEventCommC.i \ + Event/event_export.h Event/EC_Filter.i \ + RtecSchedulerC.h \ + Sched/sched_export.h \ + RtecBaseC.h \ + RtecBaseC.i \ + RtecSchedulerC.i \ + Event/rtkokyu_event_export.h Event/EC_Kokyu_Filter.i \ + Event_Service_Constants.h \ + Time_Utilities.h \ + Time_Utilities.i \ + Event/EC_Kokyu_Filter_Builder.h Event/EC_Filter_Builder.h \ + RtecEventChannelAdminC.h \ + RtecEventChannelAdminC.i \ + Event/EC_Filter_Builder.i Event/EC_Kokyu_Filter_Builder.i \ + Event/EC_Type_Filter.h Event/EC_Type_Filter.i \ + Event/EC_Conjunction_Filter.h Event/EC_Conjunction_Filter.i \ + Event/EC_Disjunction_Filter.h Event/EC_Disjunction_Filter.i \ + Event/EC_Timeout_Filter.h Event/EC_QOS_Info.h Event/EC_QOS_Info.i \ + Event/EC_Timeout_Filter.i Event/EC_Event_Channel.h Event/EC_Factory.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/DLL.h \ + $(ACE_ROOT)/ace/Service_Object.i \ + Event/EC_Factory.i Event/EC_Defaults.h \ + RtecEventChannelAdminS.h \ + RtecEventCommS.h \ + TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.i \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + TimeBaseS_T.h \ + TimeBaseS_T.i \ + TimeBaseS_T.cpp \ + TimeBaseS.i \ + RtecDefaultEventDataS.h \ + RtecDefaultEventDataS_T.h \ + RtecDefaultEventDataS_T.i \ + RtecDefaultEventDataS_T.cpp \ + RtecDefaultEventDataS.i \ + RtecEventCommS_T.h \ + RtecEventCommS_T.i \ + RtecEventCommS_T.cpp \ + RtecEventCommS.i \ + RtecBaseS.h \ + RtecBaseS_T.h \ + RtecBaseS_T.i \ + RtecBaseS_T.cpp \ + RtecBaseS.i \ + RtecEventChannelAdminS_T.h \ + RtecEventChannelAdminS_T.i \ + RtecEventChannelAdminS_T.cpp \ + RtecEventChannelAdminS.i \ + Event/EC_Event_Channel.i + +.obj/EC_Kokyu_Scheduling.o .obj/EC_Kokyu_Scheduling.so .shobj/EC_Kokyu_Scheduling.o .shobj/EC_Kokyu_Scheduling.so: Event/EC_Kokyu_Scheduling.cpp \ + Event/EC_Kokyu_Scheduling.h \ + $(ACE_ROOT)/ace/pre.h \ + Event/EC_Scheduling_Strategy.h \ + RtecBaseC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Time_Value.inl \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.i \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Any_T.h \ + $(TAO_ROOT)/tao/Any.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.i \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/AbstractBase.h \ + $(TAO_ROOT)/tao/AbstractBase.inl \ + $(TAO_ROOT)/tao/Any_T.inl \ + $(TAO_ROOT)/tao/Any_T.cpp \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/ServicesC.h \ + $(TAO_ROOT)/tao/ServicesC.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/ObjectIdListC.h \ + $(TAO_ROOT)/tao/ObjectIdListC.i \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/WrongTransactionC.i \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + svc_utils_export.h \ + RtecBaseC.i \ + RtecEventCommC.h \ + Event/event_export.h \ + TimeBaseC.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + TimeBaseC.i \ + RtecDefaultEventDataC.h \ + RtecDefaultEventDataC.i \ + RtecEventCommC.i \ + Event/EC_Scheduling_Strategy.i \ + RtecSchedulerC.h \ + Sched/sched_export.h \ + RtecSchedulerC.i \ + Event/rtkokyu_event_export.h Event/EC_Kokyu_Scheduling.i \ + Event/EC_QOS_Info.h Event/event_export.h Event/EC_QOS_Info.i \ + Event/EC_ProxyConsumer.h \ + RtecEventChannelAdminS.h \ + RtecEventCommS.h \ + TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.i \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + TimeBaseS_T.h \ + TimeBaseS_T.i \ + TimeBaseS_T.cpp \ + TimeBaseS.i \ + RtecDefaultEventDataS.h \ + RtecDefaultEventDataS_T.h \ + RtecDefaultEventDataS_T.i \ + RtecDefaultEventDataS_T.cpp \ + RtecDefaultEventDataS.i \ + RtecEventCommS_T.h \ + RtecEventCommS_T.i \ + RtecEventCommS_T.cpp \ + RtecEventCommS.i \ + RtecBaseS.h \ + RtecBaseS_T.h \ + RtecBaseS_T.i \ + RtecBaseS_T.cpp \ + RtecBaseS.i \ + RtecEventChannelAdminC.h \ + RtecEventChannelAdminC.i \ + RtecEventChannelAdminS_T.h \ + RtecEventChannelAdminS_T.i \ + RtecEventChannelAdminS_T.cpp \ + RtecEventChannelAdminS.i \ + Event/EC_Filter.h \ + Event/EC_Filter.i \ + Event/EC_ProxyConsumer.i Event/EC_ProxySupplier.h \ + Event/EC_ProxySupplier.i Event/EC_Supplier_Filter.h \ + ESF/ESF_Worker.h \ + ESF/ESF_Worker.i \ + ESF/ESF_Worker.cpp \ + Event/EC_Supplier_Filter.i + +.obj/EC_Kokyu_Dispatching.o .obj/EC_Kokyu_Dispatching.so .shobj/EC_Kokyu_Dispatching.o .shobj/EC_Kokyu_Dispatching.so: Event/EC_Kokyu_Dispatching.cpp \ + Event/EC_Kokyu_Dispatching.h \ + $(ACE_ROOT)/ace/pre.h \ + Event/EC_Dispatching.h \ + RtecEventCommC.h \ + $(TAO_ROOT)/tao/corba.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Time_Value.inl \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.i \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Any_T.h \ + $(TAO_ROOT)/tao/Any.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.i \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/AbstractBase.h \ + $(TAO_ROOT)/tao/AbstractBase.inl \ + $(TAO_ROOT)/tao/Any_T.inl \ + $(TAO_ROOT)/tao/Any_T.cpp \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/ServicesC.h \ + $(TAO_ROOT)/tao/ServicesC.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/ObjectIdListC.h \ + $(TAO_ROOT)/tao/ObjectIdListC.i \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/WrongTransactionC.i \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + Event/event_export.h \ + TimeBaseC.h \ + svc_utils_export.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + TimeBaseC.i \ + RtecDefaultEventDataC.h \ + RtecDefaultEventDataC.i \ + RtecEventCommC.i \ + Event/event_export.h Event/EC_Dispatching.i Event/EC_ProxySupplier.h \ + RtecEventChannelAdminS.h \ + RtecEventCommS.h \ + TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.i \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + TimeBaseS_T.h \ + TimeBaseS_T.i \ + TimeBaseS_T.cpp \ + TimeBaseS.i \ + RtecDefaultEventDataS.h \ + RtecDefaultEventDataS_T.h \ + RtecDefaultEventDataS_T.i \ + RtecDefaultEventDataS_T.cpp \ + RtecDefaultEventDataS.i \ + RtecEventCommS_T.h \ + RtecEventCommS_T.i \ + RtecEventCommS_T.cpp \ + RtecEventCommS.i \ + RtecBaseS.h \ + RtecBaseC.h \ + RtecBaseC.i \ + RtecBaseS_T.h \ + RtecBaseS_T.i \ + RtecBaseS_T.cpp \ + RtecBaseS.i \ + RtecEventChannelAdminC.h \ + RtecEventChannelAdminC.i \ + RtecEventChannelAdminS_T.h \ + RtecEventChannelAdminS_T.i \ + RtecEventChannelAdminS_T.cpp \ + RtecEventChannelAdminS.i \ + Event/EC_Filter.h \ + Event/EC_Filter.i \ + Event/EC_ProxySupplier.i \ + RtecSchedulerC.h \ + Sched/sched_export.h \ + RtecSchedulerC.i \ + Event/rtkokyu_event_export.h \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Exit.h \ + $(ACE_ROOT)/ace/Thread_Control.h \ + $(ACE_ROOT)/ace/Thread_Control.inl \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component.inl \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/Kokyu/Kokyu.h \ + $(ACE_ROOT)/ace/Array.h \ + $(ACE_ROOT)/Kokyu/kokyu_export.h \ + $(ACE_ROOT)/Kokyu/Kokyu.i \ + $(ACE_ROOT)/Kokyu/Dispatcher_Impl.h \ + $(ACE_ROOT)/Kokyu/Dispatcher_Impl.i \ + Event/EC_Kokyu_Dispatching.i Event/EC_Event_Channel.h \ + Event/EC_Factory.h \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/DLL.h \ + $(ACE_ROOT)/ace/Service_Object.i \ + Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Event_Channel.i \ + Event/EC_QOS_Info.h Event/EC_QOS_Info.i \ + Event_Service_Constants.h \ + Time_Utilities.h \ + Time_Utilities.i \ + $(ACE_ROOT)/ace/Sched_Params.h \ + $(ACE_ROOT)/ace/Sched_Params.i + +.obj/EC_Kokyu_Factory.o .obj/EC_Kokyu_Factory.so .shobj/EC_Kokyu_Factory.o .shobj/EC_Kokyu_Factory.so: Event/EC_Kokyu_Factory.cpp \ + Event/EC_Kokyu_Factory.h \ + $(ACE_ROOT)/ace/pre.h \ + Event/EC_Default_Factory.h Event/EC_Factory.h \ + Event/event_export.h \ + $(ACE_ROOT)/ace/post.h \ + $(ACE_ROOT)/ace/ace_wchar.h \ + $(ACE_ROOT)/ace/ace_wchar.inl \ + $(TAO_ROOT)/tao/corba.h \ + $(TAO_ROOT)/tao/corbafwd.h \ + $(ACE_ROOT)/ace/CDR_Base.h \ + $(ACE_ROOT)/ace/Basic_Types.h \ + $(ACE_ROOT)/ace/ACE_export.h \ + $(ACE_ROOT)/ace/Basic_Types.i \ + $(ACE_ROOT)/ace/OS.h \ + $(ACE_ROOT)/ace/OS_Dirent.h \ + $(ACE_ROOT)/ace/OS_Export.h \ + $(ACE_ROOT)/ace/OS_Errno.h \ + $(ACE_ROOT)/ace/OS_Errno.inl \ + $(ACE_ROOT)/ace/OS_Dirent.inl \ + $(ACE_ROOT)/ace/OS_String.h \ + $(ACE_ROOT)/ace/OS_String.inl \ + $(ACE_ROOT)/ace/OS_Memory.h \ + $(ACE_ROOT)/ace/OS_Memory.inl \ + $(ACE_ROOT)/ace/OS_TLI.h \ + $(ACE_ROOT)/ace/OS_TLI.inl \ + $(ACE_ROOT)/ace/Time_Value.h \ + $(ACE_ROOT)/ace/Time_Value.inl \ + $(ACE_ROOT)/ace/Default_Constants.h \ + $(ACE_ROOT)/ace/Global_Macros.h \ + $(ACE_ROOT)/ace/Min_Max.h \ + $(ACE_ROOT)/ace/streams.h \ + $(ACE_ROOT)/ace/Trace.h \ + $(ACE_ROOT)/ace/OS.i \ + $(ACE_ROOT)/ace/CDR_Base.inl \ + $(TAO_ROOT)/tao/orbconf.h \ + $(TAO_ROOT)/tao/TAO_Export.h \ + $(TAO_ROOT)/tao/corbafwd.i \ + $(TAO_ROOT)/tao/Typecode.h \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \ + $(ACE_ROOT)/ace/Functor.h \ + $(ACE_ROOT)/ace/ACE.h \ + $(ACE_ROOT)/ace/Flag_Manip.h \ + $(ACE_ROOT)/ace/Flag_Manip.i \ + $(ACE_ROOT)/ace/Handle_Ops.h \ + $(ACE_ROOT)/ace/Handle_Ops.i \ + $(ACE_ROOT)/ace/Lib_Find.h \ + $(ACE_ROOT)/ace/Lib_Find.i \ + $(ACE_ROOT)/ace/Init_ACE.h \ + $(ACE_ROOT)/ace/Init_ACE.i \ + $(ACE_ROOT)/ace/Sock_Connect.h \ + $(ACE_ROOT)/ace/Sock_Connect.i \ + $(ACE_ROOT)/ace/ACE.i \ + $(ACE_ROOT)/ace/Functor.i \ + $(ACE_ROOT)/ace/Functor_T.h \ + $(ACE_ROOT)/ace/Functor_T.i \ + $(ACE_ROOT)/ace/Functor_T.cpp \ + $(ACE_ROOT)/ace/Log_Msg.h \ + $(ACE_ROOT)/ace/Log_Priority.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \ + $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \ + $(ACE_ROOT)/ace/Synch.h \ + $(ACE_ROOT)/ace/Synch.i \ + $(ACE_ROOT)/ace/Synch_T.h \ + $(ACE_ROOT)/ace/Synch_T.i \ + $(ACE_ROOT)/ace/Thread.h \ + $(ACE_ROOT)/ace/Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.h \ + $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread_Adapter.inl \ + $(ACE_ROOT)/ace/Thread.i \ + $(ACE_ROOT)/ace/Synch_T.cpp \ + $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \ + $(ACE_ROOT)/ace/Service_Config.h \ + $(ACE_ROOT)/ace/Unbounded_Queue.h \ + $(ACE_ROOT)/ace/Node.h \ + $(ACE_ROOT)/ace/Node.cpp \ + $(ACE_ROOT)/ace/Unbounded_Queue.inl \ + $(ACE_ROOT)/ace/Unbounded_Queue.cpp \ + $(ACE_ROOT)/ace/Malloc_Base.h \ + $(ACE_ROOT)/ace/Unbounded_Set.h \ + $(ACE_ROOT)/ace/Unbounded_Set.inl \ + $(ACE_ROOT)/ace/Unbounded_Set.cpp \ + $(ACE_ROOT)/ace/SString.h \ + $(ACE_ROOT)/ace/String_Base.h \ + $(ACE_ROOT)/ace/String_Base_Const.h \ + $(ACE_ROOT)/ace/String_Base.i \ + $(ACE_ROOT)/ace/String_Base.cpp \ + $(ACE_ROOT)/ace/Malloc.h \ + $(ACE_ROOT)/ace/Malloc.i \ + $(ACE_ROOT)/ace/Malloc_T.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.h \ + $(ACE_ROOT)/ace/Malloc_Allocator.i \ + $(ACE_ROOT)/ace/Free_List.h \ + $(ACE_ROOT)/ace/Free_List.i \ + $(ACE_ROOT)/ace/Free_List.cpp \ + $(ACE_ROOT)/ace/Malloc_T.i \ + $(ACE_ROOT)/ace/Malloc_T.cpp \ + $(ACE_ROOT)/ace/Memory_Pool.h \ + $(ACE_ROOT)/ace/Event_Handler.h \ + $(ACE_ROOT)/ace/Event_Handler.i \ + $(ACE_ROOT)/ace/Signal.h \ + $(ACE_ROOT)/ace/Signal.i \ + $(ACE_ROOT)/ace/Mem_Map.h \ + $(ACE_ROOT)/ace/Mem_Map.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ + $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ + $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ + $(ACE_ROOT)/ace/Memory_Pool.i \ + $(ACE_ROOT)/ace/Auto_Ptr.h \ + $(ACE_ROOT)/ace/Auto_Ptr.i \ + $(ACE_ROOT)/ace/Auto_Ptr.cpp \ + $(ACE_ROOT)/ace/SString.i \ + $(ACE_ROOT)/ace/XML_Svc_Conf.h \ + $(ACE_ROOT)/ace/Service_Config.i \ + $(ACE_ROOT)/ace/Reactor.h \ + $(ACE_ROOT)/ace/Handle_Set.h \ + $(ACE_ROOT)/ace/Handle_Set.i \ + $(ACE_ROOT)/ace/Timer_Queue.h \ + $(ACE_ROOT)/ace/Timer_Queue_T.h \ + $(ACE_ROOT)/ace/Test_and_Set.h \ + $(ACE_ROOT)/ace/Test_and_Set.i \ + $(ACE_ROOT)/ace/Test_and_Set.cpp \ + $(ACE_ROOT)/ace/Timer_Queue_T.i \ + $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ + $(ACE_ROOT)/ace/Reactor.i \ + $(ACE_ROOT)/ace/Reactor_Impl.h \ + $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ + $(TAO_ROOT)/tao/Exception.h \ + $(ACE_ROOT)/ace/CORBA_macros.h \ + $(ACE_ROOT)/ace/Exception_Macros.h \ + $(TAO_ROOT)/tao/Exception.i \ + $(TAO_ROOT)/tao/Typecode.i \ + $(TAO_ROOT)/tao/Any_T.h \ + $(TAO_ROOT)/tao/Any.h \ + $(ACE_ROOT)/ace/CDR_Stream.h \ + $(ACE_ROOT)/ace/Message_Block.h \ + $(ACE_ROOT)/ace/Message_Block.i \ + $(ACE_ROOT)/ace/Message_Block_T.h \ + $(ACE_ROOT)/ace/Message_Block_T.i \ + $(ACE_ROOT)/ace/Message_Block_T.cpp \ + $(ACE_ROOT)/ace/CDR_Stream.i \ + $(TAO_ROOT)/tao/Object.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.h \ + $(TAO_ROOT)/tao/Sequence.h \ + $(TAO_ROOT)/tao/Managed_Types.h \ + $(TAO_ROOT)/tao/Managed_Types.i \ + $(TAO_ROOT)/tao/Sequence.i \ + $(TAO_ROOT)/tao/Sequence_T.h \ + $(TAO_ROOT)/tao/Sequence_T.i \ + $(TAO_ROOT)/tao/Sequence_T.cpp \ + $(TAO_ROOT)/tao/Environment.h \ + $(TAO_ROOT)/tao/Environment.i \ + $(TAO_ROOT)/tao/CDR.h \ + $(TAO_ROOT)/tao/CDR.i \ + $(TAO_ROOT)/tao/varbase.h \ + $(TAO_ROOT)/tao/Policy_ForwardC.i \ + $(TAO_ROOT)/tao/Object_KeyC.h \ + $(TAO_ROOT)/tao/Object_KeyC.i \ + $(TAO_ROOT)/tao/Object.i \ + $(TAO_ROOT)/tao/Any.i \ + $(TAO_ROOT)/tao/AbstractBase.h \ + $(TAO_ROOT)/tao/AbstractBase.inl \ + $(TAO_ROOT)/tao/Any_T.inl \ + $(TAO_ROOT)/tao/Any_T.cpp \ + $(TAO_ROOT)/tao/Marshal.h \ + $(TAO_ROOT)/tao/Marshal.i \ + $(TAO_ROOT)/tao/debug.h \ + $(TAO_ROOT)/tao/NVList.h \ + $(TAO_ROOT)/tao/NVList.i \ + $(TAO_ROOT)/tao/LocalObject.h \ + $(TAO_ROOT)/tao/LocalObject.i \ + $(TAO_ROOT)/tao/Principal.h \ + $(TAO_ROOT)/tao/OctetSeqC.h \ + $(TAO_ROOT)/tao/OctetSeqC.i \ + $(TAO_ROOT)/tao/Principal.i \ + $(TAO_ROOT)/tao/ORB.h \ + $(TAO_ROOT)/tao/ServicesC.h \ + $(TAO_ROOT)/tao/ServicesC.i \ + $(TAO_ROOT)/tao/CORBA_String.h \ + $(TAO_ROOT)/tao/CORBA_String.inl \ + $(TAO_ROOT)/tao/ObjectIdListC.h \ + $(TAO_ROOT)/tao/ObjectIdListC.i \ + $(TAO_ROOT)/tao/objectid.h \ + $(TAO_ROOT)/tao/PolicyC.h \ + $(TAO_ROOT)/tao/CurrentC.h \ + $(TAO_ROOT)/tao/CurrentC.i \ + $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/Encodable.h \ + $(TAO_ROOT)/tao/PolicyC.i \ + $(TAO_ROOT)/tao/ORB.i \ + $(TAO_ROOT)/tao/BoundsC.h \ + $(TAO_ROOT)/tao/BoundsC.i \ + $(TAO_ROOT)/tao/ValueBase.h \ + $(TAO_ROOT)/tao/ValueBase.i \ + $(TAO_ROOT)/tao/ValueFactory.h \ + $(TAO_ROOT)/tao/ValueFactory.i \ + $(TAO_ROOT)/tao/DomainC.h \ + $(TAO_ROOT)/tao/DomainC.i \ + $(TAO_ROOT)/tao/WrongTransactionC.h \ + $(TAO_ROOT)/tao/WrongTransactionC.i \ + $(TAO_ROOT)/tao/StringSeqC.h \ + $(TAO_ROOT)/tao/StringSeqC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.h \ + $(TAO_ROOT)/tao/DynamicC.h \ + $(TAO_ROOT)/tao/DynamicC.i \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.h \ + $(TAO_ROOT)/tao/ObjectReferenceTemplateC.i \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.h \ + $(TAO_ROOT)/tao/Messaging_SyncScopeC.i \ + $(TAO_ROOT)/tao/IOPC.h \ + $(TAO_ROOT)/tao/IOPC.i \ + $(TAO_ROOT)/tao/PortableInterceptorC.i \ + $(ACE_ROOT)/ace/Service_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.h \ + $(ACE_ROOT)/ace/Shared_Object.i \ + $(ACE_ROOT)/ace/DLL.h \ + $(ACE_ROOT)/ace/Service_Object.i \ + Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Default_Factory.i \ + Event/rtkokyu_event_export.h Event/EC_Kokyu_Factory.i \ + Event/EC_Kokyu_Dispatching.h Event/EC_Dispatching.h \ + RtecEventCommC.h \ + TimeBaseC.h \ + svc_utils_export.h \ + $(TAO_ROOT)/tao/TimeBaseC.h \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \ + $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \ + $(TAO_ROOT)/tao/TAO_Singleton.h \ + $(TAO_ROOT)/tao/TAO_Singleton.inl \ + $(TAO_ROOT)/tao/TAO_Singleton.cpp \ + $(ACE_ROOT)/ace/Object_Manager.h \ + $(ACE_ROOT)/ace/Object_Manager.i \ + $(ACE_ROOT)/ace/Managed_Object.h \ + $(ACE_ROOT)/ace/Managed_Object.i \ + $(ACE_ROOT)/ace/Managed_Object.cpp \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \ + $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \ + $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \ + $(TAO_ROOT)/tao/TimeBaseC.i \ + TimeBaseC.i \ + RtecDefaultEventDataC.h \ + RtecDefaultEventDataC.i \ + RtecEventCommC.i \ + Event/event_export.h Event/EC_Dispatching.i Event/EC_ProxySupplier.h \ + RtecEventChannelAdminS.h \ + RtecEventCommS.h \ + TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.h \ + $(TAO_ROOT)/tao/TimeBaseS_T.i \ + $(TAO_ROOT)/tao/TimeBaseS_T.cpp \ + $(TAO_ROOT)/tao/TimeBaseS.i \ + $(TAO_ROOT)/tao/PortableServer/PortableServer.h \ + $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \ + $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \ + $(TAO_ROOT)/tao/Abstract_Servant_Base.h \ + $(ACE_ROOT)/ace/Atomic_Op.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.h \ + $(ACE_ROOT)/ace/Atomic_Op_T.i \ + $(ACE_ROOT)/ace/Atomic_Op_T.cpp \ + $(ACE_ROOT)/ace/Atomic_Op.i \ + $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \ + $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \ + $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \ + $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \ + TimeBaseS_T.h \ + TimeBaseS_T.i \ + TimeBaseS_T.cpp \ + TimeBaseS.i \ + RtecDefaultEventDataS.h \ + RtecDefaultEventDataS_T.h \ + RtecDefaultEventDataS_T.i \ + RtecDefaultEventDataS_T.cpp \ + RtecDefaultEventDataS.i \ + RtecEventCommS_T.h \ + RtecEventCommS_T.i \ + RtecEventCommS_T.cpp \ + RtecEventCommS.i \ + RtecBaseS.h \ + RtecBaseC.h \ + RtecBaseC.i \ + RtecBaseS_T.h \ + RtecBaseS_T.i \ + RtecBaseS_T.cpp \ + RtecBaseS.i \ + RtecEventChannelAdminC.h \ + RtecEventChannelAdminC.i \ + RtecEventChannelAdminS_T.h \ + RtecEventChannelAdminS_T.i \ + RtecEventChannelAdminS_T.cpp \ + RtecEventChannelAdminS.i \ + Event/EC_Filter.h \ + Event/EC_Filter.i \ + Event/EC_ProxySupplier.i \ + RtecSchedulerC.h \ + Sched/sched_export.h \ + RtecSchedulerC.i \ + $(ACE_ROOT)/ace/Thread_Manager.h \ + $(ACE_ROOT)/ace/Thread_Exit.h \ + $(ACE_ROOT)/ace/Thread_Control.h \ + $(ACE_ROOT)/ace/Thread_Control.inl \ + $(ACE_ROOT)/ace/Containers.h \ + $(ACE_ROOT)/ace/Containers.i \ + $(ACE_ROOT)/ace/Containers_T.h \ + $(ACE_ROOT)/ace/Array_Base.h \ + $(ACE_ROOT)/ace/Array_Base.inl \ + $(ACE_ROOT)/ace/Array_Base.cpp \ + $(ACE_ROOT)/ace/Containers_T.i \ + $(ACE_ROOT)/ace/Containers_T.cpp \ + $(ACE_ROOT)/ace/Singleton.h \ + $(ACE_ROOT)/ace/Singleton.i \ + $(ACE_ROOT)/ace/Singleton.cpp \ + $(ACE_ROOT)/ace/Framework_Component.h \ + $(ACE_ROOT)/ace/Framework_Component.inl \ + $(ACE_ROOT)/ace/Framework_Component_T.h \ + $(ACE_ROOT)/ace/Framework_Component_T.inl \ + $(ACE_ROOT)/ace/Framework_Component_T.cpp \ + $(ACE_ROOT)/ace/Thread_Manager.i \ + $(ACE_ROOT)/Kokyu/Kokyu.h \ + $(ACE_ROOT)/ace/Array.h \ + $(ACE_ROOT)/Kokyu/kokyu_export.h \ + $(ACE_ROOT)/Kokyu/Kokyu.i \ + $(ACE_ROOT)/Kokyu/Dispatcher_Impl.h \ + $(ACE_ROOT)/Kokyu/Dispatcher_Impl.i \ + Event/EC_Kokyu_Dispatching.i Event/EC_Kokyu_Scheduling.h \ + Event/EC_Scheduling_Strategy.h Event/EC_Scheduling_Strategy.i \ + Event/EC_Kokyu_Scheduling.i Event/EC_Kokyu_Filter_Builder.h \ + Event/EC_Filter_Builder.h Event/EC_Filter_Builder.i \ + Event/EC_Kokyu_Filter_Builder.i Event/EC_Event_Channel.h \ + Event/EC_Event_Channel.i \ + $(ACE_ROOT)/ace/Arg_Shifter.h \ + $(ACE_ROOT)/ace/Sched_Params.h \ + $(ACE_ROOT)/ace/Sched_Params.i + +# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsp b/TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsp new file mode 100644 index 00000000000..70c6108985f --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsp @@ -0,0 +1,231 @@ +# Microsoft Developer Studio Project File - Name="RTKokyuEventEvent" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=RTKokyuEvent - Win32 MFC Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "RTKokyuEvent.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "RTKokyuEvent.mak" CFG="RTKokyuEvent - Win32 MFC Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "RTKokyuEvent - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "RTKokyuEvent - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "RTKokyuEvent - Win32 MFC Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "RTKokyuEvent - Win32 MFC Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "RTKokyuEvent - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "" +# PROP Intermediate_Dir "DLL\Release\RTKokyuEvent" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "RTKokyuEvent_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTKokyuEvent_BUILD_DLL" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 TAO_Svc_Utils.lib TAO_RTSched.lib TAO_RTEvent.lib ace.lib TAO.lib TAO_PortableServer.lib /nologo /dll /machine:I386 /out:"..\..\..\bin\TAO_RTKokyuEvent.dll" /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace" + +!ELSEIF "$(CFG)" == "RTKokyuEvent - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "" +# PROP Intermediate_Dir "DLL\Debug\RTKokyuEvent" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "RTKokyuEvent_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTKokyuEvent_BUILD_DLL" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 TAO_Svc_Utilsd.lib TAO_RTSchedd.lib TAO_RTEventd.lib TAOd.lib aced.lib TAO_PortableServerd.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\bin\TAO_RTKokyuEventd.dll" /pdbtype:sept /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace" + +!ELSEIF "$(CFG)" == "RTKokyuEvent - Win32 MFC Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "RTKokyuEvent___Win32_MFC_Debug" +# PROP BASE Intermediate_Dir "RTKokyuEvent___Win32_MFC_Debug" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "" +# PROP Intermediate_Dir "DLL\Debug\RTKokyuEventMFC" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTKokyuEvent_BUILD_DLL" /FD /c +# SUBTRACT BASE CPP /YX +# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTKokyuEvent_BUILD_DLL" /D ACE_HAS_MFC=1 /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 TAOd.lib aced.lib TAO_Svc_Utilsd.lib TAO_RTSchedd.lib TAO_RTEventd.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\bin\TAO_RTKokyuEventd.dll" /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace" +# ADD LINK32 TAOmfcd.lib acemfcd.lib TAO_Svc_Utilsmfcd.lib TAO_RTSchedmfcd.lib TAO_RTEventmfcd.lib TAO_PortableServermfcd.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\bin\TAO_RTKokyuEventmfcd.dll" /pdbtype:sept /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace" + +!ELSEIF "$(CFG)" == "RTKokyuEvent - Win32 MFC Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "RTKokyuEvent___Win32_MFC_Release" +# PROP BASE Intermediate_Dir "RTKokyuEvent___Win32_MFC_Release" +# PROP BASE Ignore_Export_Lib 0 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "" +# PROP Intermediate_Dir "DLL\Release\RTKokyuEventMFC" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTKokyuEvent_BUILD_DLL" /FD /c +# SUBTRACT BASE CPP /YX +# ADD CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTKokyuEvent_BUILD_DLL" /D ACE_HAS_MFC=1 /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 ace.lib TAO.lib TAO_Svc_Utils.lib TAO_RTSched.lib TAO_RTEvent.lib /nologo /dll /machine:I386 /out:"..\..\..\bin\TAO_RTKokyuEvent.dll" /libpath:"..\..\tao" /libpath:"..\..\..\ace" +# ADD LINK32 acemfc.lib TAOmfc.lib TAO_Svc_Utilsmfc.lib TAO_RTSchedmfc.lib TAO_RTEventmfc.lib TAO_PortableServermfc.lib /nologo /dll /machine:I386 /out:"..\..\..\bin\TAO_RTKokyuEventmfc.dll" /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace" + +!ENDIF + +# Begin Target + +# Name "RTKokyuEvent - Win32 Release" +# Name "RTKokyuEvent - Win32 Debug" +# Name "RTKokyuEvent - Win32 MFC Debug" +# Name "RTKokyuEvent - Win32 MFC Release" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Dispatching.cpp +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Factory.cpp +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Filter.cpp +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Filter_Builder.cpp +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Scheduling.cpp +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Dispatching.h +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Factory.h +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Filter.h +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Filter_Builder.h +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Scheduling.h +# End Source File +# End Group +# Begin Group "Inline Files" + +# PROP Default_Filter ".i" +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Dispatching.i +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Factory.i +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Filter.i +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Filter_Builder.i +# End Source File +# Begin Source File + +SOURCE=.\Event\EC_Kokyu_Scheduling.i +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "rc" +# End Group +# End Target +# End Project diff --git a/TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsw b/TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsw new file mode 100644 index 00000000000..8c05e95b0ea --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsw @@ -0,0 +1,290 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "ACE DLL"=..\..\..\ace\ace_dll.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "CosNaming"=.\CosNaming.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name IORTable + End Project Dependency + Begin Project Dependency + Project_Dep_Name PortableServer + End Project Dependency + Begin Project Dependency + Project_Dep_Name Svc Utils + End Project Dependency +}}} + +############################################################################### + +Project: "IORTable"=..\..\tao\IORTable\TAO_IORTable.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name TAO DLL + End Project Dependency +}}} + +############################################################################### + +Project: "Kokyu_DLL"=..\..\..\Kokyu\Kokyu_DLL.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "Messaging"=..\..\tao\Messaging\TAO_Messaging.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name TAO DLL + End Project Dependency +}}} + +############################################################################### + +Project: "PortableServer"=..\..\tao\PortableServer\TAO_PortableServer.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name TAO DLL + End Project Dependency +}}} + +############################################################################### + +Project: "RTEvent"=.\RTEvent.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name RTSched + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO DLL + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO_IDL Compiler + End Project Dependency + Begin Project Dependency + Project_Dep_Name CosNaming + End Project Dependency + Begin Project Dependency + Project_Dep_Name Messaging + End Project Dependency + Begin Project Dependency + Project_Dep_Name Svc Utils + End Project Dependency +}}} + +############################################################################### + +Project: "RTKokyuEvent"=.\RTKokyuEvent.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name RTEvent + End Project Dependency + Begin Project Dependency + Project_Dep_Name RTSched + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO DLL + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO_IDL Compiler + End Project Dependency + Begin Project Dependency + Project_Dep_Name Kokyu_DLL + End Project Dependency +}}} + +############################################################################### + +Project: "RTSched"=.\RTSched.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name CosNaming + End Project Dependency + Begin Project Dependency + Project_Dep_Name Svc Utils + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO DLL + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO_IDL Compiler + End Project Dependency +}}} + +############################################################################### + +Project: "Svc Utils"=.\Svc_Utils.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name PortableServer + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO DLL + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO_IDL Compiler + End Project Dependency +}}} + +############################################################################### + +Project: "TAO DLL"=..\..\tao\TAO.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name ACE DLL + End Project Dependency +}}} + +############################################################################### + +Project: "TAO_IDL Compiler"=..\..\TAO_IDL\tao_idl.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name TAO_IDL_BE_DLL + End Project Dependency + Begin Project Dependency + Project_Dep_Name TAO_IDL_FE_DLL + End Project Dependency +}}} + +############################################################################### + +Project: "TAO_IDL_BE_DLL"=..\..\TAO_IDL\TAO_IDL_BE_DLL.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name TAO_IDL_FE_DLL + End Project Dependency +}}} + +############################################################################### + +Project: "TAO_IDL_FE_DLL"=..\..\TAO_IDL\TAO_IDL_FE_DLL.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name ACE DLL + End Project Dependency + Begin Project Dependency + Project_Dep_Name gperf + End Project Dependency +}}} + +############################################################################### + +Project: "gperf"=..\..\..\apps\gperf\src\gperf.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name ACE DLL + End Project Dependency +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/TAO/orbsvcs/orbsvcs/RtecScheduler.idl b/TAO/orbsvcs/orbsvcs/RtecScheduler.idl index 37248a06a1c..4b47e58aefc 100644 --- a/TAO/orbsvcs/orbsvcs/RtecScheduler.idl +++ b/TAO/orbsvcs/orbsvcs/RtecScheduler.idl @@ -367,6 +367,13 @@ module RtecScheduler // // If the schedule has not been computed: // raises (NOT_SCHEDULED); + + void get_config_infos(out Config_Info_Set configs) + raises (SYNCHRONIZATION_FAILURE, NOT_SCHEDULED); + // Provides the set of Config_Infos associated with the current schedule. + // + // If the schedule has not been computed: + // raises (NOT_SCHEDULED); }; }; diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp index 181011de6f0..4c2e44e8476 100644 --- a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp +++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp @@ -291,7 +291,22 @@ ACE_Runtime_Scheduler::last_scheduled_priority (ACE_ENV_SINGLE_ARG_DECL) // throw an exception if a valid schedule has not been loaded if (config_count_ <= 0) ACE_THROW_RETURN (RtecScheduler::NOT_SCHEDULED(), - (RtecScheduler::Preemption_Priority_t) -1); + (RtecScheduler::Preemption_Priority_t) -1); else return (RtecScheduler::Preemption_Priority_t) (config_count_ - 1); } + + +void +ACE_Runtime_Scheduler::get_config_infos (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::NOT_SCHEDULED)) +{ + // throw an exception if a valid schedule has not been loaded + if (config_count_ <= 0) + ACE_THROW (RtecScheduler::NOT_SCHEDULED()); + //TODO: fill the Config_Info_Set with the runtime Config_Infos + //for now, this function is unimplemented + return; +} diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h index 1b85939bc90..10efea4441c 100644 --- a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h +++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h @@ -137,6 +137,11 @@ public: // of scheduled priorities. All scheduled priorities range from 0 // to the number returned, inclusive. + virtual void get_config_infos (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::NOT_SCHEDULED)); + private: int config_count_; // The number of elements in the config array. diff --git a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp index 9b2933bf66b..0eaa15d9e0e 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp +++ b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp @@ -480,3 +480,15 @@ ACE_Config_Scheduler::last_scheduled_priority (ACE_ENV_SINGLE_ARG_DECL_NOT_USED) // Returns the last priority number assigned to an operation in the schedule. // The number returned is one less than the total number of scheduled priorities. // All scheduled priorities range from 0 to the number returned, inclusive. + +void +ACE_Config_Scheduler::get_config_infos (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL_WITH_DEFAULTS) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::NOT_SCHEDULED)) +{ + //TODO: fill the Config_Info_Set with the runtime Config_Infos + //for now, this function is unimplemented + return; +} diff --git a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h index 7288bb466dc..5df134067d1 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h +++ b/TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h @@ -118,6 +118,14 @@ public: // All scheduled priorities range from 0 to the number returned, // inclusive. + virtual void get_config_infos (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::NOT_SCHEDULED)); + // Provides the set of Config_Infos associated with the current schedule. + + private: #if defined (TAO_USES_STRATEGY_SCHEDULER) diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp index ab82a7f0a34..25c6cca9bd0 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp @@ -567,5 +567,191 @@ TAO_MUF_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info return 0; } +/////////////////////////////////////////// +// class TAO_RMS_Reconfig_Sched_Strategy // +/////////////////////////////////////////// + +// Ordering function to compare the DFS finish times of +// two task entries, so qsort orders these in topological +// order, with the higher times *first* +int +TAO_RMS_Reconfig_Sched_Strategy::comp_entry_finish_times (const void *first, const void *second) +{ + const TAO_Reconfig_Scheduler_Entry *first_entry = + * ACE_reinterpret_cast (const TAO_Reconfig_Scheduler_Entry *const *, + first); + + const TAO_Reconfig_Scheduler_Entry *second_entry = + * ACE_reinterpret_cast (const TAO_Reconfig_Scheduler_Entry *const *, + second); + + // sort blank entries to the end + if (! first_entry) + { + return (second_entry) ? 1 : 0; + } + else if (! second_entry) + { + return -1; + } + + // Sort entries with higher forward DFS finishing times before those + // with lower forward DFS finishing times. + if (first_entry->fwd_finished () > + second_entry->fwd_finished ()) + { + return -1; + } + else if (first_entry->fwd_finished () < + second_entry->fwd_finished ()) + { + return 1; + } + + return 0; +} + +// Ordering function used to qsort an array of TAO_Reconfig_Scheduler_Entry +// pointers into a total ordering. Returns -1 if the +// first one is higher, 0 if they're the same, and 1 if the second one is higher. + +int +TAO_RMS_Reconfig_Sched_Strategy::total_priority_comp (const void *s, const void *t) +{ + // Convert the passed pointers: the double cast is needed to + // make Sun C++ 4.2 happy. + TAO_Reconfig_Scheduler_Entry **first = + ACE_reinterpret_cast (TAO_Reconfig_Scheduler_Entry **, + ACE_const_cast (void *, s)); + TAO_Reconfig_Scheduler_Entry **second = + ACE_reinterpret_cast (TAO_Reconfig_Scheduler_Entry **, + ACE_const_cast (void *, t)); + + // Check the converted pointers. + if (first == 0 || *first == 0) + { + return (second == 0 || *second == 0) ? 0 : 1; + } + else if (second == 0 || *second == 0) + { + return -1; + } + + int result = + TAO_RMS_Reconfig_Sched_Strategy::priority_diff (*((*first)->actual_rt_info ()), + *((*second)->actual_rt_info ())); + + // Check whether they were distinguished by priority. + if (result == 0) + { + return TAO_RMS_Reconfig_Sched_Strategy::compare_subpriority (**first, + **second); + } + else + { + return result; + } +} + + +// Compares two entries by priority alone. Returns -1 if the +// first one is higher, 0 if they're the same, and 1 if the second one is higher. + +int +TAO_RMS_Reconfig_Sched_Strategy::compare_priority (TAO_Reconfig_Scheduler_Entry &s, + TAO_Reconfig_Scheduler_Entry &t) +{ + // Simply call the corresponding comparison based on the underlying rt_infos. + return TAO_RMS_Reconfig_Sched_Strategy::priority_diff (*s.actual_rt_info (), + *t.actual_rt_info ()); +} + + +// Compares two entries by subpriority alone. Returns -1 if the +// first one is higher, 0 if they're the same, and 1 if the second one is higher. + +int +TAO_RMS_Reconfig_Sched_Strategy::compare_subpriority (TAO_Reconfig_Scheduler_Entry &s, + TAO_Reconfig_Scheduler_Entry &t) +{ + // @@ TO DO: add dependency hash tables to strategy, use them to look for + // *direct* dependencies between two nodes. + + // Compare importance. + if (s.actual_rt_info ()->importance > t.actual_rt_info ()->importance) + { + return -1; + } + else if (s.actual_rt_info ()->importance < t.actual_rt_info ()->importance) + { + return 1; + } + // Same importance, so look at dfs finish time as a tiebreaker. + else if (s.fwd_finished () > t.fwd_finished ()) + { + return -1; + } + else if (s.fwd_finished () < t.fwd_finished ()) + { + return 1; + } + + // They're the same if we got here. + return 0; +} + + +// Compares two RT_Infos by priority alone. Returns -1 if the +// first one is higher, 0 if they're the same, and 1 if the second one is higher. + +int +TAO_RMS_Reconfig_Sched_Strategy::priority_diff (RtecScheduler::RT_Info &s, + RtecScheduler::RT_Info &t) +{ + // In RMS, priority is per criticality level: compare criticalities. + if (s.period > t.period) + { + return -1; + } + else if (s.period < t.period) + { + return 1; + } + + // They're the same if we got here. + return 0; +} + + +// Determines whether or not an entry is critical, based on operation characteristics. +// returns 1 if critical, 0 if not + +int +TAO_RMS_Reconfig_Sched_Strategy::is_critical (TAO_Reconfig_Scheduler_Entry &rse) +{ + // Look at the underlying RT_Info's criticality field. + return (rse.actual_rt_info ()->criticality == RtecScheduler::HIGH_CRITICALITY || + rse.actual_rt_info ()->criticality == RtecScheduler::VERY_HIGH_CRITICALITY) + ? 1 : 0; +} + +// Fills in a static dispatch configuration for a priority level, based +// on the operation characteristics of a representative scheduling entry. + +int +TAO_RMS_Reconfig_Sched_Strategy::assign_config (RtecScheduler::Config_Info &info, + TAO_Reconfig_Scheduler_Entry &rse) +{ + // Global and thread priority of dispatching queue are simply + // those assigned the representative operation it will dispatch. + info.preemption_priority = rse.actual_rt_info ()->preemption_priority; + info.thread_priority = rse.actual_rt_info ()->priority; + + // Dispatching queues are all laxity-based in this strategy. + info.dispatching_type = RtecScheduler::STATIC_DISPATCHING; + + return 0; +} + #endif /* TAO_RECONFIG_SCHED_UTILS_C */ diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h index 2adfb820229..88704771c7c 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h @@ -272,6 +272,56 @@ public: // on the operation characteristics of a representative scheduling entry. }; +class TAO_RTSched_Export TAO_RMS_Reconfig_Sched_Strategy + // = TITLE + // A scheduling strategy that implements the Maximum + // Urgency First scheduling algorithm. + // + // = DESCRIPTION + // The strategy assigns static thread and global priority according + // to operation criticality, assigns static subpriority according to + // importance and then topological order, and assigns a dispatching + // configuration with a minimum laxity dispatching queue for each + // distinct criticality level. +{ +public: + + static int comp_entry_finish_times (const void *first, const void *second); + // Ordering function to compare the DFS finish times of + // two task entries, so qsort orders these in topological + // order, with the higher times *first*. + + static int total_priority_comp (const void *, const void *); + // Ordering function used to qsort an array of + // TAO_Reconfig_Scheduler_Entry pointers into a total ordering. Returns -1 if the first one is higher, 0 + // if they're the same, and 1 if the second one is higher. + + static int compare_priority (TAO_Reconfig_Scheduler_Entry &, + TAO_Reconfig_Scheduler_Entry &); + // Compares two entries by priority alone. Returns -1 if the + // first one is higher, 0 if they're the same, and 1 if the second one is higher. + + + static int compare_subpriority (TAO_Reconfig_Scheduler_Entry &, + TAO_Reconfig_Scheduler_Entry &); + // Compares two entries by subpriority alone. Returns -1 if the + // first one is higher, 0 if they're the same, and 1 if the second one is higher. + + static int priority_diff (RtecScheduler::RT_Info &s, + RtecScheduler::RT_Info &t); + // Compares two RT_Infos by priority alone. Returns -1 if the + // first one is higher, 0 if they're the same, and 1 if the second one is higher. + + static int is_critical (TAO_Reconfig_Scheduler_Entry &rse); + // Determines whether or not an entry is critical, based on operation characteristics. + // returns 1 if critical, 0 if not + + static int assign_config (RtecScheduler::Config_Info &, + TAO_Reconfig_Scheduler_Entry &); + // Fills in a static dispatch configuration for a priority level, based + // on the operation characteristics of a representative scheduling entry. +}; #if defined (__ACE_INLINE__) #include "Reconfig_Sched_Utils.i" diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp index 091a0715285..561b3c03345 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp @@ -793,6 +793,48 @@ last_scheduled_priority (ACE_ENV_SINGLE_ARG_DECL) return last_scheduled_priority_; } +// Provides the set of Config_Infos associated with the current schedule. + +template +void +TAO_Reconfig_Scheduler:: +get_config_infos (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::NOT_SCHEDULED)) +{ + ACE_GUARD_THROW_EX (ACE_LOCK, ace_mon, this->mutex_, + RtecScheduler::SYNCHRONIZATION_FAILURE ()); + ACE_CHECK; + + // Check schedule stability flags. + if ((this->stability_flags_ & SCHED_PRIORITY_NOT_STABLE) + && this->enforce_schedule_stability_) + { + ACE_THROW (RtecScheduler::NOT_SCHEDULED ()); + } + + // return the set of Config_Infos + if (configs.ptr () == 0) + { + ACE_NEW_THROW_EX (configs, + RtecScheduler::Config_Info_Set(this-> + config_info_count_), + CORBA::NO_MEMORY ()); + ACE_CHECK; + } + configs->length (this->config_info_count_); + RtecScheduler::Config_Info* config_info = 0; + for (ACE_TYPENAME CONFIG_INFO_MAP::iterator config_iter (this->config_info_map_); + config_iter.done () == 0; + ++config_iter) + { + config_info = (*config_iter).int_id_; + configs[ACE_static_cast (CORBA::ULong, config_info->preemption_priority)] = *config_info; + } +} + // Internal method to create an RT_Info. If it does not exist, a new RT_Info is // created and inserted into the schedule, and the handle of the new // RT_Info is returned. If the RT_Info already exists, an exception diff --git a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h index d067452daf6..d2b97c245d9 100644 --- a/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h +++ b/TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h @@ -222,6 +222,13 @@ public: // of scheduled priorities. All scheduled priorities range from 0 // to the number returned, inclusive. + virtual void get_config_infos (RtecScheduler::Config_Info_Set_out configs + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException, + RtecScheduler::SYNCHRONIZATION_FAILURE, + RtecScheduler::NOT_SCHEDULED)); + // Provides the set of Config_Infos associated with the current schedule. + // = Accessors that allow controlled relaxations of encapsulation. RECONFIG_SCHED_STRATEGY & sched_strategy (); -- cgit v1.2.1