00001 // -*- C++ -*- 00002 /** 00003 * @file EC_Kokyu_Factory.h 00004 * 00005 * EC_Kokyu_Factory.h,v 1.7 2006/03/14 06:14:25 jtc Exp 00006 * 00007 * @author Bryan Thrall (thrall@cs.wustl.edu) 00008 * 00009 * Based on previous work by Carlos O'Ryan (coryan@cs.wustl.edu), Tim 00010 * Harrison (harrison@cs.wustl.edu), Chris Gill (cdgill@cs.wustl.edu) 00011 * and 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_KOKYU_FACTORY_H 00017 #define TAO_EC_KOKYU_FACTORY_H 00018 #include /**/ "ace/pre.h" 00019 00020 #include "orbsvcs/Event/EC_Default_Factory.h" 00021 00022 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00023 # pragma once 00024 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00025 00026 #include "orbsvcs/Event/rtkokyu_event_export.h" 00027 00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00029 00030 /** 00031 * @class TAO_EC_Kokyu_Factory 00032 * 00033 * @brief Extend the default factory to support scheduling 00034 * 00035 */ 00036 class TAO_RTKokyuEvent_Export TAO_EC_Kokyu_Factory : public TAO_EC_Default_Factory 00037 { 00038 public: 00039 /// Constructor 00040 TAO_EC_Kokyu_Factory (void); 00041 00042 /// Helper function to register the Kokyu factory into the service 00043 /// configurator. 00044 static int init_svcs (void); 00045 00046 /// destructor... 00047 virtual ~TAO_EC_Kokyu_Factory (void); 00048 00049 // = The Service_Object entry points 00050 virtual int init (int argc, ACE_TCHAR* argv[]); 00051 virtual int fini (void); 00052 00053 // = The EC_Factory methods 00054 virtual TAO_EC_Dispatching* 00055 create_dispatching (TAO_EC_Event_Channel_Base*); 00056 virtual TAO_EC_Filter_Builder* 00057 create_filter_builder (TAO_EC_Event_Channel_Base*); 00058 virtual TAO_EC_Timeout_Generator* 00059 create_timeout_generator (TAO_EC_Event_Channel_Base*); 00060 virtual TAO_EC_Scheduling_Strategy* 00061 create_scheduling_strategy (TAO_EC_Event_Channel_Base*); 00062 00063 private: 00064 int disp_sched_policy_; 00065 int disp_sched_scope_; 00066 }; 00067 00068 TAO_END_VERSIONED_NAMESPACE_DECL 00069 00070 #if defined (__ACE_INLINE__) 00071 #include "orbsvcs/Event/EC_Kokyu_Factory.i" 00072 #endif /* __ACE_INLINE__ */ 00073 00074 ACE_STATIC_SVC_DECLARE (TAO_EC_Kokyu_Factory) 00075 ACE_FACTORY_DECLARE (TAO_RTKokyuEvent, TAO_EC_Kokyu_Factory) 00076 00077 #include /**/ "ace/post.h" 00078 #endif /* TAO_EC_KOKYU_FACTORY_H */