EC_Kokyu_Scheduling.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 /**
00004  *  @file   EC_Kokyu_Scheduling.h
00005  *
00006  *  EC_Kokyu_Scheduling.h,v 1.8 2006/03/14 06:14:25 jtc Exp
00007  *
00008  *  @author Bryan Thrall (thrall@cs.wustl.edu)
00009  *
00010  * Based on previous work by Carlos O'Ryan (coryan@cs.wustl.edu) and
00011  * Tim Harrison (harrison@cs.wustl.edu) and other members of the DOC group.
00012  * More details can be found in:
00013  *
00014  * http://doc.ece.uci.edu/~coryan/EC/index.html
00015  */
00016 
00017 #ifndef TAO_EC_KOKYU_SCHEDULING_H
00018 #define TAO_EC_KOKYU_SCHEDULING_H
00019 #include /**/ "ace/pre.h"
00020 
00021 #include "orbsvcs/Event/EC_Scheduling_Strategy.h"
00022 
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif /* ACE_LACKS_PRAGMA_ONCE */
00026 
00027 #include "orbsvcs/RtecSchedulerC.h"
00028 #include "orbsvcs/Event/rtkokyu_event_export.h"
00029 
00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00031 
00032 /**
00033  * @class TAO_EC_Kokyu_Scheduling
00034  *
00035  * @brief A scheduling strategy that uses TAO's real-time scheduler
00036  *
00037  * This implementation of the Scheduling_Strategy uses TAO's
00038  * real-time scheduler.
00039  */
00040 class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Scheduling : public TAO_EC_Scheduling_Strategy
00041 {
00042 public:
00043   /// Constructor.
00044   TAO_EC_Kokyu_Scheduling (RtecScheduler::Scheduler_ptr scheduler);
00045 
00046   /// Destructor
00047   virtual ~TAO_EC_Kokyu_Scheduling (void);
00048 
00049   virtual void add_proxy_supplier_dependencies (
00050       TAO_EC_ProxyPushSupplier *supplier,
00051       TAO_EC_ProxyPushConsumer *consumer
00052       ACE_ENV_ARG_DECL);
00053   virtual void schedule_event (const RtecEventComm::EventSet &event,
00054                                TAO_EC_ProxyPushConsumer *consumer,
00055                                TAO_EC_Supplier_Filter *filter
00056                                ACE_ENV_ARG_DECL);
00057 
00058 private:
00059   TAO_EC_Kokyu_Scheduling (const TAO_EC_Kokyu_Scheduling&);
00060   TAO_EC_Kokyu_Scheduling& operator= (const TAO_EC_Kokyu_Scheduling&);
00061 
00062   /// Initialize our RT_Info handle and dependencies
00063   void init_rt_info (ACE_ENV_SINGLE_ARG_DECL);
00064 
00065 private:
00066   /// The scheduler we are going to use
00067   RtecScheduler::Scheduler_var scheduler_;
00068 };
00069 
00070 TAO_END_VERSIONED_NAMESPACE_DECL
00071 
00072 #if defined (__ACE_INLINE__)
00073 #include "orbsvcs/Event/EC_Kokyu_Scheduling.i"
00074 #endif /* __ACE_INLINE__ */
00075 
00076 #include /**/ "ace/post.h"
00077 #endif /* TAO_EC_KOKYU_SCHEDULING_H */

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