EC_Scheduling_Strategy.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file   EC_Scheduling_Strategy.h
00005  *
00006  *  EC_Scheduling_Strategy.h,v 1.21 2006/03/15 07:52:22 jtc Exp
00007  *
00008  *  @author Carlos O'Ryan (coryan@cs.wustl.edu)
00009  *
00010  * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and
00011  * other members of the DOC group. More details can be found in:
00012  *
00013  * http://doc.ece.uci.edu/~coryan/EC/index.html
00014  */
00015 
00016 #ifndef TAO_EC_SCHEDULING_STRATEGY_H
00017 #define TAO_EC_SCHEDULING_STRATEGY_H
00018 
00019 #include /**/ "ace/pre.h"
00020 
00021 #include /**/ "orbsvcs/Event/event_serv_export.h"
00022 
00023 #include "orbsvcs/RtecBaseC.h"
00024 #include "orbsvcs/RtecEventCommC.h"
00025 
00026 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00027 # pragma once
00028 #endif /* ACE_LACKS_PRAGMA_ONCE */
00029 
00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00031 
00032 class TAO_EC_ProxyPushConsumer;
00033 class TAO_EC_ProxyPushSupplier;
00034 class TAO_EC_Supplier_Filter;
00035 class TAO_EC_QOS_Info;
00036 
00037 /**
00038  * @class TAO_EC_Scheduling_Strategy
00039  *
00040  * @brief Define the interface for the scheduling strategy
00041  *
00042  * The scheduling strategy controls the actions that the event
00043  * channel must take to update the dependency information in the
00044  * scheduler and to query the scheduler for the priority of each
00045  * event pushed by a supplier.
00046  * The base
00047  */
00048 class TAO_RTEvent_Serv_Export TAO_EC_Scheduling_Strategy
00049 {
00050 public:
00051   /// Destructor
00052   virtual ~TAO_EC_Scheduling_Strategy (void);
00053 
00054   /// Add all the dependencies between @a supplier and @a consumer
00055   virtual void add_proxy_supplier_dependencies (
00056       TAO_EC_ProxyPushSupplier *supplier,
00057       TAO_EC_ProxyPushConsumer *consumer
00058       ACE_ENV_ARG_DECL) = 0;
00059 
00060   /// Schedule an event set and deliver them to the filter in the
00061   /// desired order and grouping.
00062   virtual void schedule_event (const RtecEventComm::EventSet &event,
00063                                TAO_EC_ProxyPushConsumer *consumer,
00064                                TAO_EC_Supplier_Filter *filter
00065                                ACE_ENV_ARG_DECL) = 0;
00066 
00067 };
00068 
00069 TAO_END_VERSIONED_NAMESPACE_DECL
00070 
00071 #include /**/ "ace/post.h"
00072 
00073 #endif /* TAO_EC_SCHEDULING_STRATEGY_H */

Generated on Thu Nov 9 13:11:09 2006 for TAO_RTEvent by doxygen 1.3.6