diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-12-11 02:45:11 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-12-11 02:45:11 +0000 |
commit | 3b9469d11341ec4b81a9b8707635b6ed76340877 (patch) | |
tree | 62fdb1a532d98ad8d2da70958983a0ae1ef06ad3 /TAO/orbsvcs/orbsvcs | |
parent | cea26aeb6e1bc30c754707f0936d199e08bea071 (diff) | |
download | ATCD-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')
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) +{ +} + |