00001 /* -*- C++ -*- */ 00002 /** 00003 * @file EC_Group_Scheduling.h 00004 * 00005 * $Id: EC_Group_Scheduling.h 76589 2007-01-25 18:04:11Z elliott_c $ 00006 * 00007 * @author Carlos O'Ryan (coryan@cs.wustl.edu) 00008 * 00009 * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and 00010 * other members of the DOC group. More details can be found in: 00011 * 00012 * http://doc.ece.uci.edu/~coryan/EC/index.html 00013 */ 00014 00015 #ifndef TAO_EC_GROUP_SCHEDULING_H 00016 #define TAO_EC_GROUP_SCHEDULING_H 00017 #include /**/ "ace/pre.h" 00018 00019 #include "orbsvcs/Event/EC_Scheduling_Strategy.h" 00020 00021 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00022 # pragma once 00023 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00024 00025 /** 00026 * @class TAO_EC_Group_Scheduling 00027 * 00028 * @brief A scheduling strategy that preserves event groups. 00029 */ 00030 class TAO_RTEvent_Serv_Export TAO_EC_Group_Scheduling : public TAO_EC_Scheduling_Strategy 00031 { 00032 public: 00033 /// Constructor. 00034 TAO_EC_Group_Scheduling (void); 00035 00036 // Read EC_Scheduling_Strategy.h for more details 00037 virtual void add_proxy_supplier_dependencies ( 00038 TAO_EC_ProxyPushSupplier *supplier, 00039 TAO_EC_ProxyPushConsumer *consumer); 00040 virtual void schedule_event (const RtecEventComm::EventSet &event, 00041 TAO_EC_ProxyPushConsumer *consumer, 00042 TAO_EC_Supplier_Filter *filter); 00043 00044 private: 00045 TAO_EC_Group_Scheduling (const TAO_EC_Group_Scheduling&); 00046 TAO_EC_Group_Scheduling& operator= (const TAO_EC_Group_Scheduling&); 00047 }; 00048 00049 #if defined (__ACE_INLINE__) 00050 #include "orbsvcs/Event/EC_Group_Scheduling.inl" 00051 #endif /* __ACE_INLINE__ */ 00052 00053 #include /**/ "ace/post.h" 00054 #endif /* TAO_EC_GROUP_SCHEDULING_H */