summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-12-11 02:45:11 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1997-12-11 02:45:11 +0000
commit3b9469d11341ec4b81a9b8707635b6ed76340877 (patch)
tree62fdb1a532d98ad8d2da70958983a0ae1ef06ad3 /TAO/orbsvcs/orbsvcs
parentcea26aeb6e1bc30c754707f0936d199e08bea071 (diff)
downloadATCD-3b9469d11341ec4b81a9b8707635b6ed76340877.tar.gz
ChangeLogTag:Wed Dec 10 20:13:57 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs')
-rw-r--r--TAO/orbsvcs/orbsvcs/Channel_Clients.cpp1
-rw-r--r--TAO/orbsvcs/orbsvcs/Channel_Clients.h26
-rw-r--r--TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp12
-rw-r--r--TAO/orbsvcs/orbsvcs/Channel_Clients_T.h88
-rw-r--r--TAO/orbsvcs/orbsvcs/CosNaming.idl207
-rw-r--r--TAO/orbsvcs/orbsvcs/Event_Service_Constants.h93
-rw-r--r--TAO/orbsvcs/orbsvcs/Event_Utilities.cpp131
-rw-r--r--TAO/orbsvcs/orbsvcs/Event_Utilities.h222
-rw-r--r--TAO/orbsvcs/orbsvcs/Event_Utilities.i99
-rw-r--r--TAO/orbsvcs/orbsvcs/Makefile2103
-rw-r--r--TAO/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl91
-rw-r--r--TAO/orbsvcs/orbsvcs/RtecEventComm.idl51
-rw-r--r--TAO/orbsvcs/orbsvcs/RtecScheduler.idl222
-rw-r--r--TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp173
-rw-r--r--TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h96
-rw-r--r--TAO/orbsvcs/orbsvcs/Runtime_Scheduler.i5
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp246
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Factory.h98
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Factory.i6
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Utilities.cpp14
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Utilities.h46
-rw-r--r--TAO/orbsvcs/orbsvcs/Scheduler_Utilities.i32
22 files changed, 4062 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients.cpp b/TAO/orbsvcs/orbsvcs/Channel_Clients.cpp
new file mode 100644
index 00000000000..cfa1da318d3
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Channel_Clients.cpp
@@ -0,0 +1 @@
+// $Id$
diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients.h b/TAO/orbsvcs/orbsvcs/Channel_Clients.h
new file mode 100644
index 00000000000..487e688eb2c
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Channel_Clients.h
@@ -0,0 +1,26 @@
+/* -*- C++ -*- */
+// $Id$
+//
+// ============================================================================
+//
+// = LIBRARY
+// ace
+//
+// = FILENAME
+// Channel_Clients
+//
+// = AUTHOR
+// Tim Harrison (harrison@cs.wustl.edu)
+//
+// ============================================================================
+
+#ifndef ACE_CHANNEL_CLIENTS_H
+#define ACE_CHANNEL_CLIENTS_H
+
+#include "orbsvcs/Channel_Clients_T.h"
+
+#if defined (__ACE_INLINE__)
+#include "orbsvcs/Channel_Clients.i"
+#endif /* __ACE_INLINE__ */
+#endif /* ACE_CHANNEL_CLIENTS_H */
+
diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp b/TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp
new file mode 100644
index 00000000000..64704ad2060
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp
@@ -0,0 +1,12 @@
+// $Id$
+
+#ifndef ACE_CHANNEL_CLIENTS_T_C
+#define ACE_CHANNEL_CLIENTS_T_C
+
+#include "orbsvcs/Channel_Clients_T.h"
+
+#if !defined (__ACE_INLINE__)
+#include "orbsvcs/Channel_Clients_T.i"
+#endif /* __ACE_INLINE__ */
+
+#endif /* ACE_CHANNEL_CLIENTS_T_C */
diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients_T.h b/TAO/orbsvcs/orbsvcs/Channel_Clients_T.h
new file mode 100644
index 00000000000..1dd52e82ea6
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Channel_Clients_T.h
@@ -0,0 +1,88 @@
+/* -*- C++ -*- */
+// $Id $
+//
+// ============================================================================
+//
+// = LIBRARY
+// ace
+//
+// = FILENAME
+// Channel_Clients_T
+//
+// = AUTHOR
+// Tim Harrison (harrison@cs.wustl.edu) and
+// Douglas Schmidt (schmidt@cs.wustl.edu)
+//
+// = DESCRIPTION
+// These classes allow applications to be consumer, suppliers, and
+// consumer suppliers, as well as being active objects. This is
+// accomplished with adapters to prevent the use of multiple
+// inheritence (which is this root of all evil.)
+//
+// ============================================================================
+
+#ifndef ACE_CHANNEL_CLIENTS_T_H
+#define ACE_CHANNEL_CLIENTS_T_H
+
+#include "orbsvcs/RtecEventCommC.h"
+
+// TODO: Add throw specs to this classes.
+
+template <class TARGET>
+class ACE_PushConsumer_Adapter : public RtecEventComm::PushConsumer
+// = TITLE
+// ACE Push Consumer Adapter
+//
+// = DESCRIPTION
+// Forwards all calls to the owner_.
+{
+public:
+ ACE_PushConsumer_Adapter (TARGET *target);
+ // Forwards all calls to <owner>.
+
+ virtual void push (const RtecEventComm::EventSet& events,
+ CORBA::Environment &);
+ // Forwards to target_.
+
+ virtual void disconnect_push_consumer (CORBA::Environment &);
+ // Forwards to target_.
+
+private:
+ TARGET *target_;
+};
+
+// ************************************************************
+
+template <class TARGET>
+class ACE_PushSupplier_Adapter : public RtecEventComm::PushSupplier
+// = TITLE
+// ACE Push Supplier Adapter
+//
+// = DESCRIPTION
+// Forwards all calls to disconnect_push_supplier the target_.
+{
+public:
+ ACE_PushSupplier_Adapter (TARGET *target);
+ // Forwards all calls to <owner>.
+
+ virtual void disconnect_push_supplier (CORBA::Environment &);
+ // Forwards to target_.
+
+private:
+ TARGET *target_;
+};
+
+#if defined (__ACE_INLINE__)
+#include "orbsvcs/Channel_Clients_T.i"
+#endif /* __ACE_INLINE__ */
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "orbsvcs/Channel_Clients_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Channel_Clients_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* ACE_CHANNEL_CLIENTS_T_H */
+
diff --git a/TAO/orbsvcs/orbsvcs/CosNaming.idl b/TAO/orbsvcs/orbsvcs/CosNaming.idl
new file mode 100644
index 00000000000..770a2adea9f
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/CosNaming.idl
@@ -0,0 +1,207 @@
+/* -*- C++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// cos
+//
+// = FILENAME
+// CosNaming.idl
+//
+// = AUTHOR
+// Marina Spivak
+//
+// ============================================================================
+
+module CosNaming
+ // = TITLE
+ // This module provides interface for using COS Naming Service.
+{
+ typedef string Istring;
+ struct NameComponent
+ {
+ Istring id;
+ // This is the name that is used to identify object references.
+
+ Istring kind;
+ // Stores any addtional info about the object reference.
+ };
+ // This is a 'simple' name.
+ // NOTE: both id and kind fields are used in resolving names.
+
+ typedef sequence <NameComponent> Name;
+ // This is a compound name: <c1; c2; c3; cn> where c1 to cn-1 are
+ // the names of the nested contexts, and cn is the name of the
+ // object bound in cn-1.
+
+ enum BindingType
+ {
+ nobject,
+ // object binding.
+
+ ncontext
+ // naming context binding.
+ };
+
+ struct Binding
+ {
+ Name binding_name;
+ BindingType binding_type;
+ };
+
+ typedef sequence <Binding> BindingList;
+
+ interface BindingIterator;
+ // Forward declaration.
+
+ interface NamingContext
+ // = TITLE
+ // Interface for managing name bindings and naming contexts.
+ {
+ // = Exceptions.
+
+ enum NotFoundReason
+ {
+ missing_node,
+ not_context,
+ not_object
+ };
+
+ exception NotFound
+ {
+ NotFoundReason why;
+ Name rest_of_name;
+ };
+ // Indicates that the name does not identify a binding.
+
+ exception CannotProceed
+ {
+ //Commented out due to the bug in Orbix compiler
+ NamingContext cxt;
+ Name rest_of_name;
+ };
+ // Implementation has given up for some reason. The client,
+ // however, may be able to continue operation at the returned
+ // naming context.
+
+ exception InvalidName {};
+ // A name of length 0 is invalid.
+ // Implementations may place further restrictions.
+
+ exception AlreadyBound {};
+ // Indicates that the specified name is already bound to some
+ // object. Only one object can be bound to a particular name in
+ // a context. To change the binding, <rebind> and
+ // <rebind_context> can be used.
+
+ exception NotEmpty {};
+ // Indicates that the context is not empty.
+
+ // = Binding operations.
+
+ void bind (in Name n, in Object obj)
+ raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
+ // create a binding for name <n> and object <obj> in the naming
+ // context. Compound names are treated as follows: ctx->bind
+ // (<c1; c2; c3; cn>, obj) = (ctx->resolve (<c1; c2;
+ // cn-1>))->bind (<cn>, obj) if the there already exists a
+ // binding for the specified name, <AlreadyBound> exception is
+ // thrown. Naming contexts should be bound using <bind_context>
+ // and <rebind_context> in order to participate in name
+ // resolution later.
+
+ void rebind (in Name n, in Object obj)
+ raises(NotFound, CannotProceed, InvalidName);
+ // this is similar to <bind> operation above, except for when
+ // the binding for the specified name already exists in the
+ // specified context. In that case, the existing binding is
+ // replaced with the new one.
+
+ void bind_context (in Name n, in NamingContext nc)
+ raises(NotFound, CannotProceed, InvalidName, AlreadyBound);
+ // This is the version of <bind> specifically for binding naming
+ // contexts, so that they will participate in name resolution
+ // when compound names are passed to be resolved.
+
+ void rebind_context (in Name n, in NamingContext nc)
+ raises(NotFound, CannotProceed, InvalidName);
+ // This is a version of <rebind> specifically for naming
+ // contexts, so that they can participate in name resolution
+ // when compound names are passed.
+
+ // = Resolving names.
+
+ Object resolve (in Name n)
+ raises(NotFound, CannotProceed, InvalidName);
+ // Return object reference that is bound to the name. Compound
+ // name resolve is defined as follows: ctx->resolve (<c1; c2;
+ // cn>) = ctx->resolve (<c1; c2 cn-1>)->resolve (<cn>) The
+ // naming service does not return the type of the object.
+ // Clients are responsible for "narrowing" the object to the
+ // appropriate type.
+
+ // = Unbinding names.
+
+ void unbind (in Name n)
+ raises(NotFound, CannotProceed, InvalidName);
+ // Remove the name binding from the context. When compound
+ // names are used, unbind is defined as follows: ctx->unbind
+ // (<c1; c2; cn>) = (ctx->resolve (<c1; c2; cn-1>))->unbind
+ // (<cn>)
+
+ // = Creating Naming Contexts.
+
+ NamingContext new_context ();
+ // This operation returns a new naming context implemented by
+ // the same naming server in which the operation was invoked.
+ // The context is not bound.
+
+ NamingContext bind_new_context (in Name n)
+ raises(NotFound, AlreadyBound, CannotProceed, InvalidName);
+ // This operation creates a new context and binds it to the name
+ // supplied as an argument. The newly-created context is
+ // implemented by the same server as the context in which it was
+ // bound (the name argument excluding the last component).
+
+ // = Deleting contexts.
+
+ void destroy ()
+ raises (NotEmpty);
+ // Delete the naming context. NOTE: the user should <unbind>
+ // any bindings in which the given context is bound to some
+ // names before invoking <destroy> operation on it. Ignoring
+ // this rule may cause unexpected behaviour. <destroy> deletes
+ // the context object if it is not bound to any names in the
+ // given address space. <destroys> decrements the reference
+ // count of the context if bindings to it exist.
+
+ // = Listing the naming context.
+
+ void list (in unsigned long how_many,
+ out BindingList bl, out BindingIterator bi);
+ // Returns at most the requested number of bindings <how_many>
+ // in <bl>. If the naming context contains additional bindings,
+ // they are returned with a BindingIterator. In the naming
+ // context does not contain any additional bindings <bi>
+ // returned as null.
+ };
+
+ interface BindingIterator
+ // = TITLE
+ // Interface for iterating over Bindings returned with the <list>
+ // operation.
+ {
+ boolean next_one (out Binding b);
+ // This operation returns the next binding. If there are no
+ // more bindings false is returned.
+
+ boolean next_n (in unsigned long how_many,
+ out BindingList bl);
+ // This operation returns at most the requested number of
+ // bindings.
+
+ void destroy ();
+ // This operation destroys the iterator.
+ };
+};
diff --git a/TAO/orbsvcs/orbsvcs/Event_Service_Constants.h b/TAO/orbsvcs/orbsvcs/Event_Service_Constants.h
new file mode 100644
index 00000000000..d65f865139a
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event_Service_Constants.h
@@ -0,0 +1,93 @@
+//
+// $Id$
+//
+// = DESCRIPTION
+// Keep constants required by both Event Service implementation and
+// the Scheduling Service implementation.
+//
+
+#if !defined (ACE_ES_CONSTANTS_H)
+#define ACE_ES_CONSTANTS_H
+
+#include "ace/Message_Block.h"
+#include "ace/Synch.h"
+
+const int ACE_ES_MAX_SUBSCRIPTIONS = 32;
+// This is the number of events a consumer can subscribe to.
+
+//const int ACE_ES_MAX_SUPPLIERS = 100;
+// Max number of suppliers that a channel can handle.
+
+const int ACE_ES_MAX_CONSUMERS_PER_SUPPLIER = 100;
+// Max number of consumers that one supplier can have subscribed to
+// one type of event (including source-only). This restriction is
+// very lightweight since subscription lists are dynamic. This
+// constant is only used for ACE_ES_Simple_Set in Event_Channel.* for
+// disconnecting consumers. Since these objects are allocated off the
+// stack, we can increase this number without requiring more heap
+// memory.
+
+// = Predefined event types. All application defined types should be
+// relative to ACE_ES_EVENT_UNDEFINED.
+const u_long ACE_ES_EVENT_ANY = 0;
+const u_long ACE_ES_EVENT_SHUTDOWN = 1;
+const u_long ACE_ES_EVENT_ACT = 2;
+const u_long ACE_ES_EVENT_NOTIFICATION = 3;
+const u_long ACE_ES_EVENT_TIMEOUT = 4;
+const u_long ACE_ES_EVENT_INTERVAL_TIMEOUT = 5;
+const u_long ACE_ES_EVENT_DEADLINE_TIMEOUT = 6;
+const u_long ACE_ES_GLOBAL_DESIGNATOR = 7;
+const u_long ACE_ES_CONJUNCTION_DESIGNATOR = 8;
+const u_long ACE_ES_DISJUNCTION_DESIGNATOR = 9;
+const u_long ACE_ES_EVENT_UNDEFINED = 16;
+
+// The max number of priorities provided by the target platform.
+// TODO: This should be defined in ACE (somehow) and only mapped here
+// to some variables (and even that is doubtful).
+const long ACE_Scheduler_MAX_PRIORITIES = 5;
+
+const u_long ACE_Scheduler_Rates[ACE_Scheduler_MAX_PRIORITIES] = {
+ 250000, 500000, 1000000, 2000000, 10000000 };
+
+// The minimum preemption priority.
+const long ACE_Scheduler_MIN_PREEMPTION_PRIORITY =
+ ACE_Scheduler_MAX_PRIORITIES - 1;
+// Max preemption priority.
+const long ACE_Scheduler_MAX_PREEMPTION_PRIORITY = 0;
+
+// This is the maximum sub priority.
+const u_long ACE_Scheduler_MAX_SUB_PRIORITY =
+ ACE_Message_Block::MB_USER - 1;
+
+// This is the minimum sub priority.
+const u_long ACE_Scheduler_MIN_SUB_PRIORITY =
+ ACE_Message_Block::MB_NORMAL;
+
+typedef ACE_Thread_Mutex ACE_ES_MUTEX;
+typedef ACE_Guard<ACE_ES_MUTEX> ACE_ES_GUARD;
+
+typedef ACE_RW_Thread_Mutex ACE_ES_RW_LOCK;
+typedef ACE_Write_Guard<ACE_ES_RW_LOCK> ACE_ES_WGUARD;
+typedef ACE_Read_Guard<ACE_ES_RW_LOCK> ACE_ES_RGUARD;
+
+// ************************************************************
+// Channel configuration parameters.
+
+// ACE_ES_DISPATCHING_MODULE determines what Dispatching Module is
+// used by the channel. ACE_ES_Dispatching_Base is a null dispatcher
+// that can be used to build an EFD.
+#define ACE_ES_DISPATCHING_MODULE ACE_ES_Priority_Dispatching
+//#define ACE_ES_DISPATCHING_MODULE ACE_ES_Dispatching_Base
+
+// This is the number of threads spawned for *each* priority queue in
+// the channel's Dispatching Module. This is used by the channel when
+// creating the dispatch module.
+const int THREADS_PER_DISPATCH_QUEUE = 1;
+
+// This is the chunk size of the cached allocator for
+// ACE_ES_Event_Container.
+const int ACE_ES_EVENT_CONTAINER_MEMORY_POOL = 1024;
+const int ACE_ES_EVENT_MEMORY_POOL = 1024;
+const int ACE_ES_DISPATCH_REQUEST_MEMORY_POOL = 1024;
+
+#endif /* ACE_ES_CONSTANTS_H */
diff --git a/TAO/orbsvcs/orbsvcs/Event_Utilities.cpp b/TAO/orbsvcs/orbsvcs/Event_Utilities.cpp
new file mode 100644
index 00000000000..256f4d65b73
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event_Utilities.cpp
@@ -0,0 +1,131 @@
+//
+// $Id$
+//
+#include "orbsvcs/Event_Utilities.h"
+
+#if !defined (__ACE_INLINE__)
+#include "orbsvcs/Event_Utilities.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_ConsumerQOS_Factory::ACE_ConsumerQOS_Factory (void) :
+ qos_ (),
+ designator_set_ (0)
+{
+}
+
+ACE_ConsumerQOS_Factory::~ACE_ConsumerQOS_Factory (void)
+{
+}
+
+int
+ACE_ConsumerQOS_Factory::start_conjunction_group (void)
+{
+ int l = qos_.dependencies.length ();
+ qos_.dependencies.length (l + 1);
+ qos_.dependencies[l].event_.type_ = ACE_ES_CONJUNCTION_DESIGNATOR;
+ // TODO: qos_.dependencies[l].event_.data_.lval (0);
+ designator_set_ = 1;
+ return 0;
+}
+
+int
+ACE_ConsumerQOS_Factory::start_disjunction_group (void)
+{
+ int l = qos_.dependencies.length ();
+ qos_.dependencies.length (l + 1);
+ qos_.dependencies[l].event_.type_ = ACE_ES_DISJUNCTION_DESIGNATOR;
+ // TODO: qos_.dependencies[l].event_.data_.lval (0);
+ designator_set_ = 1;
+ return 0;
+}
+
+int
+ACE_ConsumerQOS_Factory::insert (const RtecEventChannelAdmin::Dependency &subscribe)
+{
+ RtecScheduler::RT_Info dummy;
+ // Make sure that a designator is first.
+ if (designator_set_ == 0)
+ {
+ int l = qos_.dependencies.length ();
+ qos_.dependencies.length (l + 1);
+ qos_.dependencies[l].event_.type_ = ACE_ES_GLOBAL_DESIGNATOR;
+ // TODO: IDL union qos_.dependencies[l].event_.data_.lval (0);
+ designator_set_ = 1;
+ }
+
+ int l = qos_.dependencies.length ();
+ qos_.dependencies.length (l + 1);
+ qos_.dependencies[l] = subscribe;
+ // TODO: IDL union qos_.dependencies[l].event_.data_.lval (0);
+ return 0;
+}
+
+void event_debug (const char* p,
+ const RtecEventComm::Event& event)
+{
+ int l = ACE_OS::strlen (p);
+ ACE_DEBUG ((LM_DEBUG,
+ "%*.*s - event.source: %d\n"
+ "%*.*s event.type: %d\n"
+ "%*.*s event.time: %f\n",
+ l, l, p, event.source_,
+ l, l, p, event.type_,
+ l, l, p, event.creation_time_));
+}
+
+void
+ACE_ConsumerQOS_Factory::debug (const RtecEventChannelAdmin::ConsumerQOS& qos)
+{
+ ACE_DEBUG ((LM_DEBUG, "ConsumerQOS { \n"));
+
+ for (u_int i = 0; i < qos.dependencies.length (); ++i)
+ {
+ char buf[128];
+ ACE_OS::sprintf (buf, " dep[%d]", i);
+ event_debug (buf, qos.dependencies[i].event_);
+ ACE_DEBUG ((LM_DEBUG, "%s rt_info: %d\n",
+ buf, qos.dependencies[i].rt_info));
+ }
+ ACE_DEBUG ((LM_DEBUG, "}\n"));
+}
+
+// ************************************************************
+
+ACE_SupplierQOS_Factory::ACE_SupplierQOS_Factory (void) :
+ qos_ ()
+{
+}
+
+int
+ACE_SupplierQOS_Factory::insert (RtecEventComm::EventSourceID sid,
+ RtecEventComm::EventType type,
+ RtecScheduler::handle_t rt_info,
+ u_int ncalls)
+{
+ int l = qos_.publications_.length ();
+ qos_.publications_.length (l + 1);
+ qos_.publications_[l].event_.source_ = sid;
+ qos_.publications_[l].event_.type_ = type;
+ // TODO: IDL union qos_.publications_[l].event_.data_.lval (0);
+ qos_.publications_[l].dependency_info_.rt_info = rt_info;
+ qos_.publications_[l].dependency_info_.number_of_calls = ncalls;
+ return 0;
+}
+
+void ACE_SupplierQOS_Factory::debug (const RtecEventChannelAdmin::SupplierQOS& qos)
+{
+ ACE_DEBUG ((LM_DEBUG, "ConsumerQOS { \n"));
+ for (u_int i = 0; i < qos.publications_.length (); ++i)
+ {
+ char buf[128];
+ ACE_OS::sprintf (buf, " publications[%d]", i);
+ event_debug (buf, qos.publications_[i].event_);
+ ACE_DEBUG ((LM_DEBUG,
+ "%s dependency_info.rt_info: %d\n"
+ "%s dependency_info.number_of_calls: %d\n",
+ buf, qos.publications_[i].dependency_info_.rt_info,
+ buf, qos.publications_[i].dependency_info_.number_of_calls));
+ }
+ ACE_DEBUG ((LM_DEBUG, "}\n"));
+
+}
diff --git a/TAO/orbsvcs/orbsvcs/Event_Utilities.h b/TAO/orbsvcs/orbsvcs/Event_Utilities.h
new file mode 100644
index 00000000000..bd31d8425e7
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event_Utilities.h
@@ -0,0 +1,222 @@
+/* -*- C++ -*- */
+
+// ============================================================================
+//
+// = LIBRARY
+// ace ORB
+//
+// = FILENAME
+// Event_Utilities
+//
+// = AUTHOR
+// Tim Harrison (harrison@cs.wustl.edu)
+//
+// = DESCRIPTION
+// ============================================================================
+
+#ifndef ACE_EVENT_UTILITIES_H
+#define ACE_EVENT_UTILITIES_H
+
+#include "orbsvcs/RtecEventChannelAdminC.h"
+#include "orbsvcs/Event_Service_Constants.h"
+
+class ACE_ConsumerQOS_Factory
+// = TITLE
+// Consumer QOS Factory
+//
+// = DESCRIPTION
+//
+// This class allows easy (free from CORBA IDL constraints)
+// construction of RtecEventChannelAdmin::ConsumerQOS structures.
+//
+// = CORRELATIONS
+//
+// ACE_ConsumerQOS_Factory separates subscriptions into conjunction
+// and disjunction groups. A group can be thought of as a set of
+// events inside parenthesis: (A+B+C), where A,B, and C are
+// events.
+//
+// The following code would be used to represent (A+B) | (B+C):
+//
+// ACE_ConsumerQOS_Factor factory;
+// factory.start_conjunction_group ();
+// factory.insert (A);
+// factory.insert (B);
+// factory.start_conjunction_group ();
+// factory.insert (B);
+// factory.insert (C);
+//
+// The following code would be used to represent (A|B) | (B|C):
+//
+// ACE_ConsumerQOS_Factor factory;
+// factory.start_disjunction_group ();
+// factory.insert (A);
+// factory.insert (B);
+// factory.start_disjunction_group ();
+// factory.insert (B);
+// factory.insert (C);
+//
+// First, this may not seem to be initially useful, as (A|B) |
+// (B|C) seems the same as A|B|C. However, this form does have a
+// significant use when deadline timers are specified (described
+// below). Note that groups end with the next call to
+// start_XX_group. Groups are always OR'd together. That is,
+// there is no way to directly build (A|B|C) + (D|E|F). You can
+// always expand the previous statement to the OR of multiple ANDs.
+//
+// = TIMEOUTS
+//
+// There are two types of timeout types defined in
+// Event_Service_Constants.h.
+//
+// ACE_ES_EVENT_INTERVAL_TIMEOUT - the consumer wants to receive a
+// timeout every N seconds.
+//
+// ACE_ES_EVENT_DEADLINE_TIMEOUT - the consumer wants the timeout
+// if and only if some dependencies are not resolved first.
+//
+// Using these timeouts with the correlations discussed above, we
+// can construct four different timer semantics: Interval Timer,
+// Deadline Timer, Interval Correlation, Deadline Correlation:
+//
+// Interval Timer:
+//
+// (A+B+C) | (D+E+F) | (G+H+I) | IntervalTimeout
+//
+// This registers to receive an interval timeout regardless of
+// other dependencies. Event if events occur, the interval
+// timeout will still be sent.
+//
+// Deadline Timer:
+//
+// (A+B+C) | (D+E+F) | (G+H+I) | DeadlineTimeout
+//
+// This registers to receive the deadline timeout ONLY if no
+// other events occur. If a single event is sent to the
+// consumer, the timer is cancelled and rescheduled.
+//
+// Deadline Correlation:
+//
+// (A+B+C) | (D+E+F) | (G+H+DeadlineTimeout)
+//
+// If G and H do not occur within DeadlineTimeout time, a
+// deadline timeout is sent. It is cancelled and rescheduled if G
+// and H occur.
+//
+// Interval Correlation:
+//
+// (A+B+C) | (D+E+F) | (G+H+IntervalTimeout)
+//
+// G+H+IntervalTimeout are sent ONLY after all have occurred. If
+// G+H occur, they are queued until IntervalTimeout occurs. If
+// IntervalTimeout occurs, it is queued until G+H occur.
+{
+public:
+ ACE_ConsumerQOS_Factory (void);
+ // Default construction.
+
+ ~ACE_ConsumerQOS_Factory (void);
+ // Death and destruction.
+
+ int start_conjunction_group (void);
+ // This signifies that the consumer needs the AND of all following
+ // insert calls (up until the next start_XX_group call). Returns 0
+ // on success, -1 on failure.
+
+ int start_disjunction_group (void);
+ // This signifies that the consumer needs the OR of all following
+ // insert calls (up until the next start_XX_group call). Returns 0
+ // on success, -1 on failure.
+
+ // = Insert operations add to the current conjunction or disjunction
+ // group. These return 0 on success, -1 on failure. Before insert
+ // is called, a start_XX_group method should be called. If a
+ // start_XX_group method is not called, start_conjunction_group is
+ // assumed.
+
+ int insert (const RtecEventChannelAdmin::Dependency &subscribe);
+ // Insert the <subscribe> structure describing the event and
+ // receiving method into the current group.
+
+ int insert (RtecEventComm::EventSourceID source,
+ RtecEventComm::EventType type,
+ RtecScheduler::handle_t rt_info);
+ // Insert source/type dependency. <source> of the event (may be
+ // zero), <type> of the event. <rt_info> describes the method that
+ // will handle the <source>/<type> events.
+
+ int insert_type (RtecEventComm::EventType type,
+ RtecScheduler::handle_t rt_info);
+ // Insert type-only dependency.
+
+ int insert_source (RtecEventComm::EventSourceID source,
+ RtecScheduler::handle_t rt_info);
+ // Insert source-only dependency.
+
+ int insert_time (RtecEventComm::EventType type,
+ RtecEventComm::Time interval,
+ RtecScheduler::handle_t rt_info);
+ // Register temporal dependency. <type> designates interval or
+ // deadline timeout that will occur every <interval>.
+
+ int insert_act (RtecEventComm::EventData act);
+ // This will be inserted as type ACE_ES_EVENT_ACT.
+
+ // = Conversion operators. The Event Channel takes ConsumerQOS
+ // objects.
+
+ const RtecEventChannelAdmin::ConsumerQOS &get_ConsumerQOS (void);
+ // Allows conversions to ConsumerQOS, which is expected by the
+ // PushSupplierProxy::connect_push_consumer interface.
+
+ operator const RtecEventChannelAdmin::ConsumerQOS &(void);
+ // Calls this->get_ConsumerQOS.
+
+ static void debug (const RtecEventChannelAdmin::ConsumerQOS& qos);
+
+private:
+ RtecEventChannelAdmin::ConsumerQOS qos_;
+ // The representation to be sent to the channel.
+
+ int designator_set_;
+ // Whether a start_XX_group has been called yet. This is to make
+ // sure that a designator is placed in the subscription list first.
+};
+
+// ************************************************************
+
+class ACE_SupplierQOS_Factory
+{
+public:
+ ACE_SupplierQOS_Factory (void);
+ // Default construction.
+
+ int insert (RtecEventComm::EventSourceID sid,
+ RtecEventComm::EventType type,
+ RtecScheduler::handle_t rtinfo,
+ u_int ncalls);
+ // Publish <sid> and <type> that is generate by a method described by
+ // <rtinfo>. The method generates <type> <ncalls> number of times
+ // per "iteration."
+
+ const RtecEventChannelAdmin::SupplierQOS &get_SupplierQOS (void);
+ // Allows conversions to SupplierQOS, which is expected by the
+ // PushSupplierProxy::connect_push_supplier interface.
+
+ operator const RtecEventChannelAdmin::SupplierQOS &(void);
+ // Calls this->get_SupplierQOS.
+
+ static void debug (const RtecEventChannelAdmin::SupplierQOS& qos);
+
+private:
+ RtecEventChannelAdmin::SupplierQOS qos_;
+ // Representation needed by channel.
+};
+
+
+#if defined (__ACE_INLINE__)
+#include "orbsvcs/Event_Utilities.i"
+#endif /* __ACE_INLINE__ */
+
+#endif /* ACE_EVENT_UTILITIES_H */
+
diff --git a/TAO/orbsvcs/orbsvcs/Event_Utilities.i b/TAO/orbsvcs/orbsvcs/Event_Utilities.i
new file mode 100644
index 00000000000..49cc031a517
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Event_Utilities.i
@@ -0,0 +1,99 @@
+/* -*- C++ -*- */
+
+ACE_INLINE int
+ACE_ConsumerQOS_Factory::insert (RtecEventComm::EventSourceID source,
+ RtecEventComm::EventType type,
+ RtecScheduler::handle_t rt_info)
+{
+ RtecEventChannelAdmin::Dependency dependency;
+ dependency.event_.source_ = source;
+ dependency.event_.type_ = type;
+ dependency.event_.creation_time_ = 0;
+ dependency.event_.ec_recv_time_ = 0;
+ dependency.event_.ec_send_time_ = 0;
+ dependency.rt_info = rt_info;
+ return this->insert (dependency);
+}
+
+ACE_INLINE int
+ACE_ConsumerQOS_Factory::insert_type (RtecEventComm::EventType type,
+ RtecScheduler::handle_t rt_info)
+{
+ RtecEventChannelAdmin::Dependency dependency;
+ dependency.event_.source_ = 0;
+ dependency.event_.type_ = type;
+ dependency.event_.creation_time_ = 0;
+ dependency.event_.ec_recv_time_ = 0;
+ dependency.event_.ec_send_time_ = 0;
+ dependency.rt_info = rt_info;
+ return this->insert (dependency);
+}
+
+ACE_INLINE int
+ACE_ConsumerQOS_Factory::insert_source (RtecEventComm::EventSourceID source,
+ RtecScheduler::handle_t rt_info)
+{
+ RtecEventChannelAdmin::Dependency dependency;
+ dependency.event_.source_ = source;
+ dependency.event_.type_ = ACE_ES_EVENT_ANY;
+ dependency.event_.creation_time_ = 0;
+ dependency.event_.ec_recv_time_ = 0;
+ dependency.event_.ec_send_time_ = 0;
+ dependency.rt_info = rt_info;
+ return this->insert (dependency);
+}
+
+ACE_INLINE int
+ACE_ConsumerQOS_Factory::insert_time (RtecEventComm::EventType type,
+ RtecEventComm::Time interval,
+ RtecScheduler::handle_t rt_info)
+{
+ RtecEventChannelAdmin::Dependency dependency;
+ dependency.event_.source_ = 0;
+ dependency.event_.type_ = type;
+ dependency.event_.creation_time_ = interval;
+ dependency.event_.ec_recv_time_ = 0;
+ dependency.event_.ec_send_time_ = 0;
+ dependency.rt_info = rt_info;
+ return this->insert (dependency);
+}
+
+ACE_INLINE int
+ACE_ConsumerQOS_Factory::insert_act (RtecEventComm::EventData act)
+{
+ RtecEventChannelAdmin::Dependency dependency;
+ dependency.event_.source_ = 0;
+ dependency.event_.type_ = ACE_ES_EVENT_ACT;
+ dependency.event_.creation_time_ = 0;
+ dependency.event_.ec_recv_time_ = 0;
+ dependency.event_.ec_send_time_ = 0;
+ dependency.event_.data_ = act;
+ return this->insert (dependency);
+}
+
+ACE_INLINE const RtecEventChannelAdmin::ConsumerQOS&
+ACE_ConsumerQOS_Factory::get_ConsumerQOS (void)
+{
+ return qos_;
+}
+
+ACE_INLINE
+ACE_ConsumerQOS_Factory::operator const RtecEventChannelAdmin::ConsumerQOS& (void)
+{
+ return qos_;
+}
+
+// ************************************************************
+
+ACE_INLINE const RtecEventChannelAdmin::SupplierQOS&
+ACE_SupplierQOS_Factory::get_SupplierQOS (void)
+{
+ return qos_;
+}
+
+ACE_INLINE
+ACE_SupplierQOS_Factory::operator const RtecEventChannelAdmin::SupplierQOS& (void)
+{
+ return qos_;
+}
+
diff --git a/TAO/orbsvcs/orbsvcs/Makefile b/TAO/orbsvcs/orbsvcs/Makefile
new file mode 100644
index 00000000000..fc1b97441fb
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Makefile
@@ -0,0 +1,2103 @@
+#----------------------------------------------------------------------------
+#
+# $Id$
+#
+#----------------------------------------------------------------------------
+
+MAKEFILE = Makefile
+LIBNAME = liborbsvcs
+LIB = $(LIBNAME).a
+SHLIB = $(LIBNAME).$(SOEXT)
+
+IDL_FILES = \
+ CosNamingC \
+ CosNamingS \
+ RtecEventCommC \
+ RtecEventCommS \
+ RtecSchedulerC \
+ RtecSchedulerS \
+ RtecEventChannelAdminC \
+ RtecEventChannelAdminS \
+
+FILES= $(IDL_FILES) \
+ Event_Utilities \
+ Scheduler_Factory \
+ Runtime_Scheduler \
+ Scheduler_Utilities \
+
+DEFS = $(addsuffix .h,$(FILES))
+LSRC = $(addsuffix .cpp,$(FILES))
+
+LIBS += -lTAO -lACE
+
+#----------------------------------------------------------------------------
+# Include macros and targets
+#----------------------------------------------------------------------------
+
+include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
+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)
+#----------------------------------------------------------------------------
+
+ifndef TAO_ROOT
+TAO_ROOT = $(ACE_ROOT)/TAO
+endif
+
+LDFLAGS += -L$(TAO_ROOT)/tao
+CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat -I$(TAO_ROOT)/orbsvcs $(TSS_ORB_FLAG)#-H
+
+# @@ Commented out until no more hand-crafting is needed, right now the
+# main problem is the ACE_Export macros for NT.
+
+CosNamingC.cpp CosNamingS.cpp CosNamingC.h CosNamingS.h: CosNaming.idl
+ $(TAO_ROOT)/TAO_IDL/tao_idl $^
+
+RtecSchedulerC.cpp RtecSchedulerS.cpp RtecSchedulerC.h RtecSchedulerS.h: RtecScheduler.idl
+ $(TAO_ROOT)/TAO_IDL/tao_idl $^
+
+RtecEventCommC.cpp RtecEventCommS.cpp RtecEventCommC.h RtecEventCommS.h: RtecEventComm.idl
+ $(TAO_ROOT)/TAO_IDL/tao_idl $^
+
+RtecEventChannelAdminC.cpp RtecEventChannelAdminS.cpp RtecEventChannelAdminC.h RtecEventChannelAdminS.h: RtecEventChannelAdmin.idl
+ $(TAO_ROOT)/TAO_IDL/tao_idl $^
+
+ -/bin/rm -rf *.o Log $(BIN) obj.* core Templates.DB .make.state
+
+realclean: clean
+ -/bin/rm -rf CosNamingC.* CosNamingS.*
+
+
+# DO NOT DELETE THIS LINE -- g++dep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+
+.obj/CosNamingC.o .shobj/CosNamingC.so: CosNamingC.cpp CosNamingC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ CosNamingC.i
+.obj/CosNamingS.o .shobj/CosNamingS.so: CosNamingS.cpp CosNamingS.h CosNamingC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ CosNamingC.i CosNamingS.i
+.obj/RtecEventCommC.o .shobj/RtecEventCommC.so: RtecEventCommC.cpp RtecEventCommC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ RtecEventCommC.i
+.obj/RtecEventCommS.o .shobj/RtecEventCommS.so: RtecEventCommS.cpp RtecEventCommS.h RtecEventCommC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ RtecEventCommC.i RtecEventCommS.i
+.obj/RtecSchedulerC.o .shobj/RtecSchedulerC.so: RtecSchedulerC.cpp RtecSchedulerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ RtecSchedulerC.i
+.obj/RtecSchedulerS.o .shobj/RtecSchedulerS.so: RtecSchedulerS.cpp RtecSchedulerS.h RtecSchedulerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ RtecSchedulerC.i RtecSchedulerS.i
+.obj/RtecEventChannelAdminC.o .shobj/RtecEventChannelAdminC.so: RtecEventChannelAdminC.cpp \
+ RtecEventChannelAdminC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ RtecEventCommC.h RtecEventCommC.i RtecSchedulerC.h RtecSchedulerC.i \
+ RtecEventChannelAdminC.i
+.obj/RtecEventChannelAdminS.o .shobj/RtecEventChannelAdminS.so: RtecEventChannelAdminS.cpp \
+ RtecEventChannelAdminS.h RtecEventCommS.h RtecEventCommC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ RtecEventCommC.i RtecEventCommS.i RtecSchedulerS.h RtecSchedulerC.h \
+ RtecSchedulerC.i RtecSchedulerS.i RtecEventChannelAdminC.h \
+ RtecEventChannelAdminC.i RtecEventChannelAdminS.i
+.obj/Event_Utilities.o .shobj/Event_Utilities.so: Event_Utilities.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Utilities.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Utilities.i
+.obj/Scheduler_Factory.o .shobj/Scheduler_Factory.so: Scheduler_Factory.cpp \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Runtime_Scheduler.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Runtime_Scheduler.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.i
+.obj/Runtime_Scheduler.o .shobj/Runtime_Scheduler.so: Runtime_Scheduler.cpp \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Runtime_Scheduler.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Runtime_Scheduler.i
+.obj/Scheduler_Utilities.o .shobj/Scheduler_Utilities.so: Scheduler_Utilities.cpp \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/config.h \
+ $(ACE_ROOT)/ace/streams.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Trace.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Record.h \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Version.h \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Log_Record.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Utilities.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \
+ $(TAO_ROOT)/tao/corba.h \
+ $(ACE_ROOT)/ace/Get_Opt.h \
+ $(ACE_ROOT)/ace/Get_Opt.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.h \
+ $(ACE_ROOT)/ace/SOCK_IO.h \
+ $(ACE_ROOT)/ace/SOCK.h \
+ $(ACE_ROOT)/ace/Addr.h \
+ $(ACE_ROOT)/ace/Addr.i \
+ $(ACE_ROOT)/ace/IPC_SAP.h \
+ $(ACE_ROOT)/ace/IPC_SAP.i \
+ $(ACE_ROOT)/ace/SOCK.i \
+ $(ACE_ROOT)/ace/SOCK_IO.i \
+ $(ACE_ROOT)/ace/INET_Addr.h \
+ $(ACE_ROOT)/ace/INET_Addr.i \
+ $(ACE_ROOT)/ace/SOCK_Stream.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Event_Handler.h \
+ $(ACE_ROOT)/ace/Event_Handler.i \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(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/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Atomic_Op.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/SOCK_Acceptor.i \
+ $(ACE_ROOT)/ace/SOCK_Connector.h \
+ $(ACE_ROOT)/ace/SOCK_Connector.i \
+ $(ACE_ROOT)/ace/Strategies.h \
+ $(ACE_ROOT)/ace/Strategies_T.h \
+ $(ACE_ROOT)/ace/Service_Config.h \
+ $(ACE_ROOT)/ace/Service_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.h \
+ $(ACE_ROOT)/ace/Shared_Object.i \
+ $(ACE_ROOT)/ace/Service_Object.i \
+ $(ACE_ROOT)/ace/Signal.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Signal.i \
+ $(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/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/Free_List.h \
+ $(ACE_ROOT)/ace/Free_List.i \
+ $(ACE_ROOT)/ace/Timer_Queue_T.i \
+ $(ACE_ROOT)/ace/Reactor.i \
+ $(ACE_ROOT)/ace/Reactor_Impl.h \
+ $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \
+ $(ACE_ROOT)/ace/Synch_Options.h \
+ $(ACE_ROOT)/ace/Connector.h \
+ $(ACE_ROOT)/ace/Map_Manager.h \
+ $(ACE_ROOT)/ace/Map_Manager.i \
+ $(ACE_ROOT)/ace/Svc_Handler.h \
+ $(ACE_ROOT)/ace/Task.h \
+ $(ACE_ROOT)/ace/Thread_Manager.h \
+ $(ACE_ROOT)/ace/Thread_Manager.i \
+ $(ACE_ROOT)/ace/Task.i \
+ $(ACE_ROOT)/ace/Task_T.h \
+ $(ACE_ROOT)/ace/Message_Queue.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Malloc.h \
+ $(ACE_ROOT)/ace/Malloc.i \
+ $(ACE_ROOT)/ace/Malloc_T.h \
+ $(ACE_ROOT)/ace/Malloc_T.i \
+ $(ACE_ROOT)/ace/Memory_Pool.h \
+ $(ACE_ROOT)/ace/Mem_Map.h \
+ $(ACE_ROOT)/ace/Mem_Map.i \
+ $(ACE_ROOT)/ace/Memory_Pool.i \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
+ $(ACE_ROOT)/ace/Message_Queue.i \
+ $(ACE_ROOT)/ace/Task_T.i \
+ $(ACE_ROOT)/ace/Dynamic.h \
+ $(ACE_ROOT)/ace/Dynamic.i \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Svc_Handler.i \
+ $(ACE_ROOT)/ace/Connector.i \
+ $(ACE_ROOT)/ace/Acceptor.h \
+ $(ACE_ROOT)/ace/Acceptor.i \
+ $(TAO_ROOT)/tao/compat/objbase.h \
+ $(TAO_ROOT)/tao/compat/initguid.h \
+ $(TAO_ROOT)/tao/orbconf.h \
+ $(TAO_ROOT)/tao/orb.h \
+ $(TAO_ROOT)/tao/corbacom.h \
+ $(TAO_ROOT)/tao/object.h \
+ $(TAO_ROOT)/tao/align.h \
+ $(TAO_ROOT)/tao/sequence.h \
+ $(TAO_ROOT)/tao/varout.h \
+ $(TAO_ROOT)/tao/any.h \
+ $(TAO_ROOT)/tao/poa.h \
+ $(TAO_ROOT)/tao/params.h \
+ $(TAO_ROOT)/tao/client_factory.h \
+ $(TAO_ROOT)/tao/server_factory.h \
+ $(TAO_ROOT)/tao/default_client.h \
+ $(TAO_ROOT)/tao/default_server.h \
+ $(TAO_ROOT)/tao/except.h \
+ $(TAO_ROOT)/tao/orbobj.h \
+ $(TAO_ROOT)/tao/nvlist.h \
+ $(TAO_ROOT)/tao/principa.h \
+ $(TAO_ROOT)/tao/request.h \
+ $(TAO_ROOT)/tao/svrrqst.h \
+ $(TAO_ROOT)/tao/typecode.h \
+ $(TAO_ROOT)/tao/marshal.h \
+ $(TAO_ROOT)/tao/cdr.h \
+ $(TAO_ROOT)/tao/stub.h \
+ $(TAO_ROOT)/tao/connect.h \
+ $(TAO_ROOT)/tao/orb_core.h \
+ $(TAO_ROOT)/tao/objtable.h \
+ $(TAO_ROOT)/tao/optable.h \
+ $(TAO_ROOT)/tao/debug.h \
+ $(TAO_ROOT)/tao/managed_types.h \
+ $(TAO_ROOT)/tao/iiopobj.h \
+ $(TAO_ROOT)/tao/iioporb.h \
+ $(TAO_ROOT)/tao/giop.h \
+ $(TAO_ROOT)/tao/orb_core.i \
+ $(ACE_ROOT)/ace/Dynamic_Service.h \
+ $(TAO_ROOT)/tao/corbacom.i \
+ $(TAO_ROOT)/tao/sequence.i \
+ $(TAO_ROOT)/tao/typecode.i \
+ $(TAO_ROOT)/tao/any.i \
+ $(TAO_ROOT)/tao/stub.i \
+ $(TAO_ROOT)/tao/object.i \
+ $(TAO_ROOT)/tao/orbobj.i \
+ $(TAO_ROOT)/tao/marshal.i \
+ $(TAO_ROOT)/tao/cdr.i \
+ $(TAO_ROOT)/tao/poa.i \
+ $(TAO_ROOT)/tao/giop.i \
+ $(TAO_ROOT)/tao/iioporb.i \
+ $(TAO_ROOT)/tao/iiopobj.i \
+ $(TAO_ROOT)/tao/managed_types.i \
+ $(TAO_ROOT)/tao/params.i \
+ $(TAO_ROOT)/tao/server_factory.i \
+ $(TAO_ROOT)/tao/default_client.i \
+ $(TAO_ROOT)/tao/default_server.i \
+ $(TAO_ROOT)/tao/connect.i \
+ $(TAO_ROOT)/tao/singletons.h \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \
+ $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Utilities.i
+
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl b/TAO/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl
new file mode 100644
index 00000000000..ec0147abbb9
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl
@@ -0,0 +1,91 @@
+//
+// $Id$
+//
+#include "RtecEventComm.idl"
+#include "RtecScheduler.idl"
+
+module RtecEventChannelAdmin {
+
+ exception AlreadyConnected {
+ };
+ exception TypeError {
+ };
+
+ struct Dependency {
+ RtecEventComm::Event event_;
+ RtecScheduler::handle_t rt_info;
+ };
+ typedef sequence<Dependency> DependencySet;
+
+ struct ConsumerQOS {
+ DependencySet dependencies;
+ };
+
+ struct Publication {
+ RtecEventComm::Event event_;
+ RtecScheduler::Dependency_Info dependency_info_;
+ };
+ typedef sequence<Publication> PublicationSet;
+
+ struct SupplierQOS {
+ PublicationSet publications_;
+ };
+
+ interface ProxyPushConsumer: RtecEventComm::PushConsumer {
+ oneway void connect_push_supplier(
+ in RtecEventComm::PushSupplier push_supplier,
+ in SupplierQOS qos);
+ // raises(AlreadyConnected);
+ };
+
+ interface ProxyPushSupplier: RtecEventComm::PushSupplier {
+ oneway void connect_push_consumer(
+ in RtecEventComm::PushConsumer push_consumer,
+ in ConsumerQOS qos);
+ // raises(AlreadyConnected, TypeError);
+ };
+
+ // TODO: Find out the exception specs for the following interface's
+ // methods.
+ interface ConsumerAdmin {
+ ProxyPushSupplier obtain_push_supplier();
+ };
+ interface SupplierAdmin {
+ ProxyPushConsumer obtain_push_consumer();
+ };
+
+ interface EventChannel {
+ exception SYNCHRONIZATION_ERROR {
+ long minor;
+ long status;
+ string name;
+ };
+ exception QOS_ERROR {
+ long minor;
+ long status;
+ string name;
+ };
+ exception SUBSCRIPTION_ERROR {
+ long minor;
+ long status;
+ string name;
+ };
+ exception CORRELATION_ERROR {
+ long minor;
+ long status;
+ string name;
+ };
+ exception DISPATCH_ERROR {
+ long minor;
+ long status;
+ string name;
+ };
+ ConsumerAdmin for_consumers();
+ SupplierAdmin for_suppliers();
+
+ void destroy();
+ };
+
+};
+
+
diff --git a/TAO/orbsvcs/orbsvcs/RtecEventComm.idl b/TAO/orbsvcs/orbsvcs/RtecEventComm.idl
new file mode 100644
index 00000000000..5171aaa4438
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/RtecEventComm.idl
@@ -0,0 +1,51 @@
+//
+// $Id$
+//
+
+module RtecEventComm {
+ exception Disconnected {};
+
+#if 0
+ union EventData switch(short) {
+ case 1: double dval;
+ case 2: string sval;
+ case 3: sequence<octet> bval;
+ default: long lval;
+ };
+#else
+ struct EventData {
+ long x;
+ long y;
+ };
+#endif
+
+ typedef long EventSourceID;
+ typedef long EventType;
+
+ // @@ TODO: Use CosTimeService?
+ // The current definition (double) is a TOTAL HACK, we store a long
+ // long here just because it fits....
+ typedef double Time;
+
+ struct Event {
+ EventSourceID source_;
+ EventType type_;
+ Time creation_time_;
+ Time ec_recv_time_;
+ Time ec_send_time_;
+ EventData data_;
+ };
+ typedef sequence<Event> EventSet;
+
+ interface PushConsumer {
+ oneway void push (in EventSet data); // raises(Disconnected);
+ oneway void disconnect_push_consumer();
+ };
+
+ interface PushSupplier {
+ oneway void disconnect_push_supplier();
+ };
+
+};
+
+
diff --git a/TAO/orbsvcs/orbsvcs/RtecScheduler.idl b/TAO/orbsvcs/orbsvcs/RtecScheduler.idl
new file mode 100644
index 00000000000..e0d2ea9fa0f
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/RtecScheduler.idl
@@ -0,0 +1,222 @@
+//
+// $Id$
+//
+
+module RtecScheduler {
+
+ // TODO: Use the COS Time Service TimeT type.
+ typedef double Time;
+ typedef long Period;
+ typedef Time Quantum;
+
+ const long NO_QUANTUM = 0;
+
+ //
+ // TODO: This differ from the ones documented in the TAO paper,
+ // namely:
+ // INTERRUPT
+ // IO_SERVICE
+ // CRITICAL
+ // HARD_DEADLINE
+ // BACKGROUND
+ // Notice that the order is inverted and, of course, the names don't
+ // match.
+ //
+ enum Importance {
+ VERY_LOW,
+ LOW,
+ MEDIUM,
+ HIGH,
+ VERY_HIGH
+ };
+
+ typedef long handle_t;
+ // RT_Info's are assignned per-application unique identifiers.
+
+ struct Dependency_Info {
+ long number_of_calls;
+ handle_t rt_info;
+ // Notice the reference to the RT_Info we depend on.
+ };
+
+ typedef sequence<Dependency_Info> Dependency_Set;
+
+ typedef long OS_Priority;
+ typedef long Sub_Priority;
+ typedef long Preemption_Priority;
+
+ struct RT_Info
+ // = TITLE
+ // Describes the QoS for an "operation".
+ //
+ // = DESCRIPTION
+ // The CPU requirements and QoS for each "entity" implementing
+ // an application operation is described by the following
+ // information.
+ {
+ // Application defined string that uniquely identifies the
+ // operation.
+ string entry_point;
+
+ // The scheduler defined unique identifier.
+ handle_t handle;
+
+ // Execution times
+ Time worst_case_execution_time;
+ Time typical_execution_time;
+
+ // To account for server data caching.
+ Time cached_execution_time;
+
+ // For rate operations this defines the period of the rate.
+ // 0 means "completely pasive", i.e., this operation only executes
+ // when called.
+ Period period;
+
+ // Operation importance (used to "break ties").
+ Importance importance;
+
+ // For time-slicing (for BACKGROUND operations only).
+ Quantum quantum;
+
+ // The following attributes are defined by the Scheduler once the
+ // off-line scheduling is computed.
+
+ // The number of threads that will execute this operation?
+ // TODO: clarify this.
+ long threads;
+
+ // The operations we depend upon.
+ Dependency_Set dependencies;
+
+ // The OS por processing the events generated from this RT_Info.
+ OS_Priority priority;
+
+ // For ordering RT_Info's with equal priority.
+ Sub_Priority subpriority;
+
+ // The queue number for this RT_Info.
+ Preemption_Priority preemption_priority;
+ };
+
+ exception DUPLICATE_NAME {};
+ // The application is trying to register the same task again.
+
+ exception UNKNOWN_TASK {};
+ // The RT_Info handle was not valid.
+
+ exception NOT_SCHEDULED {};
+ // The application is trying to obtain scheduling information, but
+ // none is available.
+
+ exception UTILIZATION_BOUND_EXCEEDED {};
+ exception INSUFFICIENT_THREAD_PRIORITY_LEVELS {};
+ exception TASK_COUNT_MISMATCH {};
+ // Problems while computing off-line scheduling.
+
+ typedef sequence<RT_Info> RT_Info_Set;
+
+ // TODO: Find a reasonable name for this interface, maybe we should
+ // change the name of the module to RtecSchedulerAdmin and name this
+ // Scheduler
+ interface Scheduler
+ // = DESCRIPTION
+ // This class holds all the RT_Info's for a single application.
+ // During the configuration run this will be implemented as a
+ // single remote object, whose services are used by the
+ // suppliers, consumers and the EC.
+ // At run-time each process will hold a copy of the compiled
+ // version of the Scheduler, using the precomputed data to
+ // resolve requests (avoiding any remote calls) and ignoring any
+ // requests for modifying its state.
+ // A Factory class will be used to choose the proper
+ // implementation.
+ //
+ // This class must be registered with the naming service using a
+ // well known name ("Scheduler" seems the obvious choice), the
+ // Naming Context will account for different applications and
+ // modes.
+ //
+ // Once the scheduling data is computed it can be retrieved
+ // remotely to generate the code for the run-time version.
+ {
+ handle_t create (in string entry_point) raises (DUPLICATE_NAME);
+ // Creates a new RT_Info entry for the function identifier
+ // "entry_point", it can be any string, but the fully qualified
+ // name function name is suggested.
+ // Returns a handle to the RT_Info.
+
+ handle_t lookup (in string entry_point);
+ // Lookups a handle for entry_point.
+ // TODO: Should we add INVALID_HANDLE or raise an exception?
+
+ RT_Info get (in handle_t handle) raises (UNKNOWN_TASK);
+ // Retrieve information about an RT_Info.
+
+ void set (in handle_t handle,
+ in Time time,
+ in Time typical_time,
+ in Time cached_time,
+ in Period period,
+ in Importance importance,
+ in Quantum quantum,
+ in long threads)
+ raises (UNKNOWN_TASK);
+ // Set the attributes of an RT_Info.
+ // Notice that some values may not be modified (like priority).
+
+ void add_dependency (in handle_t handle,
+ in handle_t dependency,
+ in long number_of_calls)
+ raises (UNKNOWN_TASK);
+ // Adds <dependency> to <handle>
+
+ void priority (in handle_t handle,
+ out OS_Priority priority,
+ out Sub_Priority subpriority,
+ out Preemption_Priority p_priority)
+ raises (UNKNOWN_TASK, NOT_SCHEDULED);
+ void entry_point_priority (in string entry_point,
+ out OS_Priority priority,
+ out Sub_Priority subpriority,
+ out Preemption_Priority p_priority)
+ raises (UNKNOWN_TASK, NOT_SCHEDULED);
+ // Obtain the run time priorities.
+ // TODO: Do we need the two interfaces or is it simply confusing?
+ // If we should to keep only the <handle> version: Are the extra
+ // round-trips too expensive?
+ // If we choose only the <entry_point> version: Are the copies for
+ // the string affordable?
+
+ void compute_scheduling (in long minimum_priority,
+ in long maximum_priority,
+ out RT_Info_Set infos)
+ raises (UTILIZATION_BOUND_EXCEEDED,
+ INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ TASK_COUNT_MISMATCH);
+ // Computes the scheduling priorities, returns the RT_Info's with
+ // their priorities properly filled.
+ // This info can be cached by a Run_Time_Scheduler service or
+ // dumped into a C++ file for compilation and even faster (static)
+ // lookup.
+
+ // TODO: The dependencies field can be removed from the RT_Info
+ // and made part of the secrets of "Application", adding the
+ // following to satisfy curious clients:
+ //
+ // struct Dependency {
+ // long number_of_calls;
+ // handle_t dependency;
+ // };
+ // typedef sequence<Dependency> Dependency_Set;
+ //
+ // Dependency_Set dependencies (in handle_t handle)
+ // raises (UNKNOWN_TASK);
+ // Returns the list of dependencies
+ //
+ // long number_of_dependencies (in handle_t handle)
+ // raises (UNKNOWN_TASK);
+ // Returns the number of dependencies.
+
+ };
+};
diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp
new file mode 100644
index 00000000000..315117e5610
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp
@@ -0,0 +1,173 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
+
+#include "orbsvcs/Runtime_Scheduler.h"
+
+#if defined (__ACE_INLINE__)
+#include "orbsvcs/Runtime_Scheduler.i"
+#endif /* __ACE_INLINE__ */
+
+ACE_Runtime_Scheduler::
+ACE_Runtime_Scheduler (int entry_count,
+ RtecScheduler::RT_Info* rt_info[])
+: POA_RtecScheduler::Scheduler ("Static_Scheduler"),
+ entry_count_ (entry_count),
+ rt_info_ (rt_info)
+{
+}
+
+RtecScheduler::handle_t
+ACE_Runtime_Scheduler::create (const char * entry_point,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::DUPLICATE_NAME))
+{
+ // Just make sure its there and returns its handle (position).
+ int i;
+ for (i = 0; i < entry_count_; ++i)
+ {
+ if (strcmp (entry_point, rt_info_[i]->entry_point) == 0)
+ {
+ return i;
+ }
+ }
+ // TODO: throw an exception or print an error.
+ return -1;
+}
+
+RtecScheduler::handle_t
+ACE_Runtime_Scheduler::lookup (const char * entry_point,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return create (entry_point, _env);
+}
+
+RtecScheduler::RT_Info*
+ACE_Runtime_Scheduler::get (RtecScheduler::handle_t handle,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK))
+{
+ if (handle < 0 || handle > entry_count_)
+ {
+ ACE_THROW_RETURN (RtecScheduler::UNKNOWN_TASK(), 0);
+ }
+ return rt_info_[handle];
+}
+
+void ACE_Runtime_Scheduler::set (RtecScheduler::handle_t handle,
+ RtecScheduler::Time time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period period,
+ RtecScheduler::Importance importance,
+ RtecScheduler::Quantum quantum,
+ CORBA::Long threads,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK))
+{
+ // We compare the values with the ones stored and print a message on
+ // any differences.
+ if (handle < 0 || handle > entry_count_)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK);
+ return;
+ }
+ if (rt_info_[handle]->worst_case_execution_time != time
+ || rt_info_[handle]->typical_execution_time != typical_time
+ || rt_info_[handle]->cached_execution_time != cached_time
+ || rt_info_[handle]->period != period
+ || rt_info_[handle]->importance != importance
+ || rt_info_[handle]->quantum != quantum
+ || rt_info_[handle]->threads != threads)
+ {
+ ACE_ERROR ((LM_ERROR, "invalid data for RT_Info: %s\n",
+ (const char*)rt_info_[handle]->entry_point));
+ // TODO: throw something here.
+ }
+}
+
+
+void ACE_Runtime_Scheduler::priority (RtecScheduler::handle_t handle,
+ RtecScheduler::OS_Priority& priority,
+ RtecScheduler::Sub_Priority& subpriority,
+ RtecScheduler::Preemption_Priority& p_priority,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::NOT_SCHEDULED))
+{
+ if (handle < 0 || handle > entry_count_)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK());
+ return;
+ }
+ priority = rt_info_[handle]->priority;
+ subpriority = rt_info_[handle]->subpriority;
+ p_priority = rt_info_[handle]->preemption_priority;
+}
+
+void ACE_Runtime_Scheduler::entry_point_priority (const char * entry_point,
+ RtecScheduler::OS_Priority& priority,
+ RtecScheduler::Sub_Priority& subpriority,
+ RtecScheduler::Preemption_Priority& p_priority,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::NOT_SCHEDULED))
+{
+ RtecScheduler::handle_t handle = lookup (entry_point, _env);
+ if (handle < -1)
+ {
+ // The exception was thrown or is in _env already.
+ return;
+ }
+ this->priority (handle, priority, subpriority, p_priority, _env);
+}
+
+void ACE_Runtime_Scheduler::add_dependency (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK))
+{
+ if (handle < 0 || handle > entry_count_)
+ {
+ ACE_THROW (RtecScheduler::UNKNOWN_TASK);
+ return;
+ }
+ // Just check that the information is consistent.
+ RtecScheduler::Dependency_Set& deps = rt_info_[handle]->dependencies;
+ for (int i = 0; i < deps.length (); ++i)
+ {
+ if (deps[i].rt_info == dependency
+ && deps[i].number_of_calls == number_of_calls)
+ {
+ return;
+ }
+ }
+ ACE_ERROR ((LM_ERROR, "unmatched dependency on %s\n",
+ (const char*)rt_info_[handle]->entry_point));
+}
+
+void ACE_Runtime_Scheduler::compute_scheduling (CORBA::Long minimum_priority,
+ CORBA::Long maximum_priority,
+ RtecScheduler::RT_Info_Set_out infos,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UTILIZATION_BOUND_EXCEEDED,
+ RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ RtecScheduler::TASK_COUNT_MISMATCH))
+{
+ // TODO: Right now just do nothing, later we could validate the
+ // priorities (without recomputing).
+ // TODO: fill up the infos.
+ return;
+}
+
diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h
new file mode 100644
index 00000000000..e77513041dd
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h
@@ -0,0 +1,96 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
+
+#ifndef ACE_RUNTIME_SCHEDULER_H
+#define ACE_RUNTIME_SCHEDULER_H
+
+#include "ace/OS.h"
+
+#include "orbsvcs/RtecSchedulerS.h"
+
+class ACE_Runtime_Scheduler
+ : public POA_RtecScheduler::Scheduler
+ // = TITLE
+ // A proxy server for RtecScheduler::Scheduler.
+ //
+ // = DESCRIPTION
+ // This class offers the services of the scheduler, but based on
+ // precomputed and precompiled information. This results in a
+ // highly optimized execution after the configuration runs.
+{
+public:
+ ACE_Runtime_Scheduler (int entry_count,
+ RtecScheduler::RT_Info* rt_info[]);
+ // Initialize the data from the RT_Info array.
+ // Only basic validation is done.
+
+ virtual RtecScheduler::handle_t create (const char * entry_point,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::DUPLICATE_NAME));
+
+ virtual RtecScheduler::handle_t lookup (const char * entry_point,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC((CORBA::SystemException));
+
+ virtual RtecScheduler::RT_Info* get (RtecScheduler::handle_t handle,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::UNKNOWN_TASK));
+
+ virtual void set (RtecScheduler::handle_t handle,
+ RtecScheduler::Time time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period period,
+ RtecScheduler::Importance importance,
+ RtecScheduler::Quantum quantum,
+ CORBA::Long threads,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException, RtecScheduler::UNKNOWN_TASK));
+
+ virtual void priority (RtecScheduler::handle_t handle,
+ RtecScheduler::OS_Priority& priority,
+ RtecScheduler::Sub_Priority& subpriority,
+ RtecScheduler::Preemption_Priority& p_priority,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::NOT_SCHEDULED));
+
+ virtual void entry_point_priority (const char * entry_point,
+ RtecScheduler::OS_Priority& priority,
+ RtecScheduler::Sub_Priority& subpriority,
+ RtecScheduler::Preemption_Priority& p_priority,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK,
+ RtecScheduler::NOT_SCHEDULED));
+
+ virtual void add_dependency (RtecScheduler::handle_t handle,
+ RtecScheduler::handle_t dependency,
+ CORBA::Long number_of_calls,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ RtecScheduler::UNKNOWN_TASK));
+
+ virtual void compute_scheduling (CORBA::Long minimum_priority,
+ CORBA::Long maximum_priority,
+ RtecScheduler::RT_Info_Set_out infos,
+ CORBA::Environment &_env)
+ ACE_THROW_SPEC((CORBA::SystemException,
+ RtecScheduler::UTILIZATION_BOUND_EXCEEDED,
+ RtecScheduler::INSUFFICIENT_THREAD_PRIORITY_LEVELS,
+ RtecScheduler::TASK_COUNT_MISMATCH));
+
+private:
+ int entry_count_;
+ RtecScheduler::RT_Info** rt_info_;
+};
+
+#if defined (__ACE_INLINE__)
+#include "orbsvcs/Runtime_Scheduler.i"
+#endif /* __ACE_INLINE__ */
+
+#endif /* ACE_RUNTIME_SCHEDULER_H */
diff --git a/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.i b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.i
new file mode 100644
index 00000000000..a21ea7f9897
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Runtime_Scheduler.i
@@ -0,0 +1,5 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
new file mode 100644
index 00000000000..850b1a159d9
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp
@@ -0,0 +1,246 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
+
+#include "ace/OS.h"
+
+#include "orbsvcs/Runtime_Scheduler.h"
+#include "orbsvcs/Scheduler_Factory.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "orbsvcs/Scheduler_Factory.i"
+#endif /* __ACE_INLINE__ */
+
+RtecScheduler::Scheduler_ptr ACE_Scheduler_Factory::server_ = 0;
+
+static int entry_count = -1;
+static ACE_Scheduler_Factory::POD_RT_Info* rt_info = 0;
+
+int ACE_Scheduler_Factory::use_runtime (int ec,
+ POD_RT_Info rti[])
+{
+ if (server_ != 0 || entry_count != -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_Scheduler_Factory::use_runtime - "
+ "server already configured\n"), -1);
+ }
+
+ entry_count = ec;
+ rt_info = rti;
+
+ return 0;
+}
+
+RtecScheduler::Scheduler_ptr static_server ()
+{
+ RtecScheduler::Scheduler_ptr server_ = 0;
+
+ typedef RtecScheduler::RT_Info* RT_Info_ptr;
+ RtecScheduler::RT_Info** info;
+ ACE_NEW_RETURN (info, RT_Info_ptr[entry_count], 0);
+ for (int i = 0; i < entry_count; ++i)
+ {
+ info[i] = new RtecScheduler::RT_Info;
+ if (info[i] == 0)
+ {
+ for (int j = 0; j < i; ++j)
+ {
+ delete info[i];
+ }
+ delete[] info;
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_Scheduler_Factory::config_runtime - "
+ "cannot allocate RT_Info\n"), 0);
+ }
+ info[i]->entry_point = rt_info[i].entry_point;
+ info[i]->handle = rt_info[i].handle;
+ info[i]->worst_case_execution_time = rt_info[i].worst_case_execution_time;
+ info[i]->typical_execution_time = rt_info[i].typical_execution_time;
+ info[i]->cached_execution_time = rt_info[i].cached_execution_time;
+ info[i]->period = rt_info[i].period;
+ info[i]->importance = rt_info[i].importance;
+ info[i]->quantum = rt_info[i].quantum;
+ info[i]->threads = rt_info[i].threads;
+ info[i]->priority = rt_info[i].priority;
+ info[i]->subpriority = rt_info[i].subpriority;
+ info[i]->preemption_priority = rt_info[i].preemption_priority;
+ }
+ server_ = new ACE_Runtime_Scheduler (entry_count, info);
+
+ if (server_ == 0)
+ {
+ for (int i = 0; i < entry_count; ++i)
+ {
+ delete info[i];
+ }
+ delete[] info;
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_Scheduler_Factory::config_runtime - "
+ "cannot allocate server\n"), 0);
+ }
+ ACE_DEBUG ((LM_DEBUG,
+ "ACE_Scheduler_Factory - configured static server\n"));
+ CORBA::Object::_duplicate (server_);
+ return server_;
+}
+
+int
+ACE_Scheduler_Factory::use_config (CosNaming::NamingContext_ptr naming)
+{
+ if (server_ != 0 || entry_count != -1)
+ {
+ // No errors, runtime execution simply takes precedence over
+ // config runs.
+ return 0;
+ }
+
+ ACE_TRY
+ {
+ CosNaming::Name schedule_name (1);
+ schedule_name[0].id = CORBA::string_dup ("ScheduleService");
+ schedule_name.length (1);
+ CORBA::Object_ptr objref =
+ naming->resolve (schedule_name, ACE_TRY_ENV);
+ ACE_CHECK_ENV;
+
+ server_ =
+ RtecScheduler::Scheduler::_narrow(objref, ACE_TRY_ENV);
+ ACE_CHECK_ENV;
+
+ RtecScheduler::Scheduler::_duplicate (server_);
+ ACE_CHECK_ENV;
+ }
+ ACE_CATCHANY
+ {
+ server_ = 0;
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_Scheduler_Factory::use_context - "
+ " exception while resolving server\n"), -1);
+ }
+ ACE_ENDTRY;
+ return 0;
+}
+
+int
+ACE_Scheduler_Factory::use_config (CORBA::ORB_ptr orb)
+{
+ if (server_ != 0 || entry_count != -1)
+ {
+ // No errors, runtime execution simply takes precedence over
+ // config runs.
+ return 0;
+ }
+
+ ACE_TRY
+ {
+ CORBA::Object_ptr objref =
+ orb->resolve_initial_references ("ScheduleService");
+ ACE_CHECK_ENV;
+
+ server_ =
+ RtecScheduler::Scheduler::_narrow(objref, ACE_TRY_ENV);
+ ACE_CHECK_ENV;
+
+ RtecScheduler::Scheduler::_duplicate (server_);
+ ACE_CHECK_ENV;
+ }
+ ACE_CATCHANY
+ {
+ server_ = 0;
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_Scheduler_Factory::use_context - "
+ " exception while resolving server\n"), -1);
+ }
+ ACE_ENDTRY;
+ return 0;
+}
+
+
+RtecScheduler::Scheduler_ptr
+ACE_Scheduler_Factory::server (void)
+{
+ if (server_ == 0 && entry_count != -1)
+ {
+ server_ = static_server ();
+ }
+
+ if (server_ == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "ACE_Scheduler_Factor::server - "
+ "no scheduling service configured\n"), 0);
+ }
+ return server_;
+}
+
+static char header[] =
+"// This file was automatically generated by Scheduler_Factory\n"
+"// before editing the file please consider generating it again\n"
+"\n"
+"#include \"orbsvcs/Scheduler_Factory.h\"\n"
+"\n";
+
+static char footer[] =
+"\n"
+"// This setups Scheduler_Factory to use the runtime version\n"
+"static int scheduler_factory_setup = \n"
+" ACE_Scheduler_Factory::use_runtime (sizeof (infos)/sizeof (infos[0]),\n"
+" infos);\n"
+"\n"
+"// EOF\n";
+
+static char start_infos[] =
+"static ACE_Scheduler_Factory::POD_RT_Info infos[] = {\n";
+
+static char end_infos[] =
+"};\n";
+
+int ACE_Scheduler_Factory::dump_schedule
+ (const RtecScheduler::RT_Info_Set& infos,
+ const char* filename)
+{
+ FILE* file = stdout;
+ if (filename != 0)
+ {
+ file = ACE_OS::fopen (filename, "w");
+ if (file == 0)
+ {
+ return -1;
+ }
+ }
+ ACE_OS::fprintf(file, header);
+
+ ACE_OS::fprintf(file, start_infos);
+ for (u_int i = 0; i < infos.length (); ++i)
+ {
+ if (i != 0)
+ {
+ // Finish previous line
+ ACE_OS::fprintf(file, ",\n");
+ }
+ const RtecScheduler::RT_Info& info = infos[i];
+ ACE_OS::fprintf (file,
+"{ \"%s\", %d, %f, %f, %f, %d, %d, %f, %d, %d, %d, %d }",
+ (const char*)info.entry_point,
+ info.handle,
+ info.worst_case_execution_time,
+ info.typical_execution_time,
+ info.cached_execution_time,
+ info.period,
+ info.importance,
+ info.quantum,
+ info.threads,
+ info.priority,
+ info.subpriority,
+ info.preemption_priority);
+ }
+ // finish last line.
+ ACE_OS::fprintf(file, "\n");
+ ACE_OS::fprintf(file, end_infos);
+ ACE_OS::fprintf(file, footer);
+ ACE_OS::fclose (file);
+ return 0;
+}
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h
new file mode 100644
index 00000000000..fa2411cd9e9
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.h
@@ -0,0 +1,98 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
+
+#ifndef ACE_SCHEDULER_FACTORY_H
+#define ACE_SCHEDULER_FACTORY_H
+
+#include "ace/OS.h"
+
+#include "orbsvcs/CosNamingC.h"
+#include "orbsvcs/RtecSchedulerC.h"
+
+class ACE_Scheduler_Factory
+ // = TITLE
+ // Factory of scheduler services.
+ //
+ // = DESCRIPTION
+ // This class acts as a factory for scheduler servers. At config
+ // time it will return a remote server, which will actually
+ // compute the scheduling parameters. At run-time it returns a
+ // local server, which will use the results of the config runs to
+ // actually do the scheduling, without incurring in RPC overheads.
+{
+public:
+ struct POD_RT_Info
+ // = TITLE
+ // Plain Old Data for RT_Infos.
+ //
+ // = DESCRIPTION
+ // This class provide us with a plain old data version of
+ // RT_Info, this is useful for implementing static arrays or of
+ // those.
+ {
+ const char* entry_point;
+ RtecScheduler::handle_t handle;
+ RtecScheduler::Time worst_case_execution_time;
+ RtecScheduler::Time typical_execution_time;
+ RtecScheduler::Time cached_execution_time;
+ RtecScheduler::Period period;
+ RtecScheduler::Importance importance;
+ RtecScheduler::Quantum quantum;
+ CORBA::Long threads;
+ RtecScheduler::OS_Priority priority;
+ RtecScheduler::Sub_Priority subpriority;
+ RtecScheduler::Preemption_Priority preemption_priority;
+ };
+
+ static int use_config (CosNaming::NamingContext_ptr naming);
+ // Setup the variables needed for a config run, using the
+ // NamingContext to locate a Scheduler.
+
+ static int use_config (CORBA::ORB_ptr orb);
+ // Setup the variable needed for a config run, using an environment
+ // variable to locate a Scheduler.
+
+ static int use_runtime (int entry_count,
+ POD_RT_Info rt_info[]);
+ // Disable config runs in the Factory and setups the precomputed
+ // scheduling.
+
+ static RtecScheduler::Scheduler_ptr server (void);
+ // Return the Real-time Scheduling Service used for this run.
+ // Must have been configured either using use_context() or use_data().
+ //
+ // Normally use_data() is called at static elaboration time, so
+ // everything is automatic.
+ // On config runs use_context() is called from main, after
+ // resolve_initial_references.
+
+ static int dump_schedule (const RtecScheduler::RT_Info_Set& infos,
+ const char* file_name = 0);
+ // This helper function will dump the schedule returned by a
+ // RtecScheduler::Scheduler into a file, the file can be compiled to
+ // create an efficient local implementation of the Scheduler.
+
+ // TODO: How to do cleanup()? Use the ACE_Object_Manager stuff?
+
+protected:
+ static int no_config_run (void);
+ // By default this factory assumes we are runnning a config
+ // run. Calling this method disables that.
+ // Since the methods returns an int it can be used to initialize a
+ // static variable, hence calling it before main(); this technique
+ // can be used in the code emitted for the run-time scheduler,
+ // automagically disabling the config_run() when that code is linked
+ // in.
+
+private:
+ static RtecScheduler::Scheduler_ptr server_;
+};
+
+#if defined (__ACE_INLINE__)
+#include "orbsvcs/Scheduler_Factory.i"
+#endif /* __ACE_INLINE__ */
+
+#endif /* ACE_SCHEDULER_FACTORY_H */
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Factory.i b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.i
new file mode 100644
index 00000000000..8d85b9d5a37
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Factory.i
@@ -0,0 +1,6 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
+
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.cpp b/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.cpp
new file mode 100644
index 00000000000..ffea37fb9fe
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.cpp
@@ -0,0 +1,14 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
+
+#include "ace/OS.h"
+
+#include "orbsvcs/Scheduler_Utilities.h"
+
+#if ! defined (__ACE_INLINE__)
+#include "orbsvcs/Scheduler_Utilities.i"
+#endif /* __ACE_INLINE__ */
+
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.h b/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.h
new file mode 100644
index 00000000000..b0b3b529722
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.h
@@ -0,0 +1,46 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
+
+#ifndef ACE_SCHEDULER_UTILITIES_H
+#define ACE_SCHEDULER_UTILITIES_H
+
+#include "ace/OS.h"
+
+#include "orbsvcs/RtecSchedulerC.h"
+
+class ACE_RT_Info : public RtecScheduler::RT_Info
+ // = TITLE
+ // Offers a convenient C++ interface to the IDL RT_Info structure.
+ //
+ // = DESCRIPTION
+ // For performance reasons the RT_Info data is represented as an
+ // IDL structure, this permits sending complete RT_Info's from the
+ // client to the server.
+ // Unfortunately this precludes the usage of member functions and
+ // constructors, this class serves as a helper to implement those
+ // without loosing the performance on IDL.
+{
+public:
+ ACE_RT_Info (const char* entry_point,
+ RtecScheduler::Time worst_time,
+ RtecScheduler::Time typical_time,
+ RtecScheduler::Time cached_time,
+ RtecScheduler::Period period,
+ RtecScheduler::Importance importance,
+ RtecScheduler::Quantum quantum,
+ CORBA::Long threads);
+
+ ACE_RT_Info (const RtecScheduler::RT_Info& rt_info);
+
+ int add_dependency(RtecScheduler::handle_t dep,
+ int number_of_calls = 1);
+};
+
+#if defined (__ACE_INLINE__)
+#include "orbsvcs/Scheduler_Utilities.i"
+#endif /* __ACE_INLINE__ */
+
+#endif /* ACE_SCHEDULER_UTILITIES_H */
diff --git a/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.i b/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.i
new file mode 100644
index 00000000000..1d62ceffaf5
--- /dev/null
+++ b/TAO/orbsvcs/orbsvcs/Scheduler_Utilities.i
@@ -0,0 +1,32 @@
+// ============================================================================
+//
+// $Id$
+//
+// ============================================================================
+
+ACE_INLINE
+ACE_RT_Info::ACE_RT_Info (const char* entry_point_,
+ RtecScheduler::Time worst_time_,
+ RtecScheduler::Time typical_time_,
+ RtecScheduler::Time cached_time_,
+ RtecScheduler::Period period_,
+ RtecScheduler::Importance importance_,
+ RtecScheduler::Quantum quantum_,
+ CORBA::Long threads_)
+{
+ this->entry_point = entry_point_;
+ this->worst_case_execution_time = worst_time_;
+ this->typical_execution_time = typical_time_;
+ this->cached_execution_time = cached_time_;
+ this->period = period_;
+ this->importance = importance_;
+ this->quantum = quantum_;
+ this->threads = threads_;
+}
+
+ACE_INLINE
+ACE_RT_Info::ACE_RT_Info (const RtecScheduler::RT_Info& rt_info)
+ : RtecScheduler::RT_Info (rt_info)
+{
+}
+