summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
Diffstat (limited to 'TAO')
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.cpp128
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.h130
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Dispatching.i35
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.cpp236
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.h72
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Factory.i7
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.cpp285
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.h130
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter.i1
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.cpp362
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.h85
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Filter_Builder.i8
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.cpp96
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.h74
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Kokyu_Scheduling.i8
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/rtkokyu_event_export.h50
-rw-r--r--TAO/orbsvcs/orbsvcs/Makefile.RTKokyuEvent1626
-rw-r--r--TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsp231
-rw-r--r--TAO/orbsvcs/orbsvcs/RTKokyuEvent.dsw290
-rw-r--r--TAO/orbsvcs/orbsvcs/RtecScheduler.idl7
-rw-r--r--TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp17
-rw-r--r--TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h5
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp12
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h8
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.cpp186
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Sched_Utils.h50
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.cpp42
-rw-r--r--TAO/orbsvcs/orbsvcs/Sched/Reconfig_Scheduler_T.h7
28 files changed, 4187 insertions, 1 deletions
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; i<configs->length(); ++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 <event>
+ // 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.
+ *
+ * <H2>Memory Management</H2>
+ * 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 <body>, 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 <priority, subpriority> 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 <priority,
+ // subpriority> 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 <class RECONFIG_SCHED_STRATEGY, class ACE_LOCK>
+void
+TAO_Reconfig_Scheduler<RECONFIG_SCHED_STRATEGY, ACE_LOCK>::
+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 ();