diff options
Diffstat (limited to 'ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp')
-rw-r--r-- | ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp new file mode 100644 index 00000000000..4e7cace0a1e --- /dev/null +++ b/ACE/Kokyu/DSRT_Dispatcher_Impl_T.cpp @@ -0,0 +1,56 @@ +// $Id$ + +#ifndef DSRT_DISPATCHER_IMPL_T_CPP +#define DSRT_DISPATCHER_IMPL_T_CPP + +#include "DSRT_Dispatcher_Impl_T.h" + +#if ! defined (__ACE_INLINE__) +#include "DSRT_Dispatcher_Impl_T.i" +#endif /* __ACE_INLINE__ */ + +ACE_RCSID(Kokyu, DSRT_Dispatcher_Impl, "$Id$") + +namespace Kokyu +{ + +template <class DSRT_Scheduler_Traits> +DSRT_Dispatcher_Impl<DSRT_Scheduler_Traits>:: +DSRT_Dispatcher_Impl (ACE_Sched_Params::Policy sched_policy, + int sched_scope) + : sched_policy_ (sched_policy), + sched_scope_ (sched_scope), + min_prio_ (ACE_Sched_Params::priority_min + (sched_policy_, + sched_scope)), + max_prio_ (ACE_Sched_Params::priority_max + (sched_policy_, + sched_scope)), + executive_prio_ (max_prio_), + blocked_prio_ (ACE_Sched_Params::previous_priority + (sched_policy_, + max_prio_, + sched_scope)), + inactive_prio_ (min_prio_), + active_prio_ (ACE_Sched_Params::next_priority + (sched_policy_, + min_prio_)), + shutdown_flagged_ (0), + non_rt_thr_flags_ (THR_NEW_LWP | THR_JOINABLE | THR_BOUND), + curr_scheduled_thr_handle_ (0) +{ + if (sched_policy_ == ACE_SCHED_FIFO) + rt_thr_flags_ = non_rt_thr_flags_ | THR_SCHED_FIFO; + else if (sched_policy_ == ACE_SCHED_RR) + rt_thr_flags_ = non_rt_thr_flags_ | THR_SCHED_RR; +} + +//virtual - so don't inline +template <class DSRT_Scheduler_Traits> +DSRT_Dispatcher_Impl<DSRT_Scheduler_Traits>::~DSRT_Dispatcher_Impl () +{ +} + +} + +#endif /* DSRT_DISPATCHER_IMPL_T_CPP */ |