00001 /* -*- C++ -*- */ 00002 /** 00003 * @file EC_Group_Scheduling.h 00004 * 00005 * EC_Group_Scheduling.h,v 1.6 2006/03/14 06:14:25 jtc Exp 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 ACE_ENV_ARG_DECL); 00041 virtual void schedule_event (const RtecEventComm::EventSet &event, 00042 TAO_EC_ProxyPushConsumer *consumer, 00043 TAO_EC_Supplier_Filter *filter 00044 ACE_ENV_ARG_DECL); 00045 00046 private: 00047 TAO_EC_Group_Scheduling (const TAO_EC_Group_Scheduling&); 00048 TAO_EC_Group_Scheduling& operator= (const TAO_EC_Group_Scheduling&); 00049 }; 00050 00051 #if defined (__ACE_INLINE__) 00052 #include "orbsvcs/Event/EC_Group_Scheduling.inl" 00053 #endif /* __ACE_INLINE__ */ 00054 00055 #include /**/ "ace/post.h" 00056 #endif /* TAO_EC_GROUP_SCHEDULING_H */