#include <Sched_Params.h>
Public Member Functions | |
ACE_Sched_Priority_Iterator (const ACE_Sched_Params::Policy &policy, int scope=ACE_SCOPE_THREAD) | |
~ACE_Sched_Priority_Iterator (void) | |
Default dtor. | |
int | more (void) const |
Check if there are more priorities. | |
int | priority (void) const |
Return the current priority. | |
void | next (void) |
const ACE_Sched_Params::Policy & | policy (void) const |
Accessor for the scheduling policy over which we are iterating. | |
int | scope (void) const |
Accessor for the scheduling. | |
Private Attributes | |
ACE_Sched_Params::Policy | policy_ |
int | scope_ |
int | priority_ |
The current priority. | |
int | done_ |
The order of priorities (numeric value vs. importance) is OS dependant, it can be the case that the priorities are not even contigous. This class permits iteration over priorities using the iterator pattern.
Definition at line 181 of file Sched_Params.h.
ACE_INLINE ACE_Sched_Priority_Iterator::ACE_Sched_Priority_Iterator | ( | const ACE_Sched_Params::Policy & | policy, | |
int | scope = ACE_SCOPE_THREAD | |||
) |
Initialize the iterator, the arguments define the scheduling policy and scope for the priorities (see ACE_Sched_Param).
Definition at line 94 of file Sched_Params.inl.
References priority_, ACE_Sched_Params::priority_min(), and scope().
00096 : policy_ (policy), 00097 scope_ (scope), 00098 priority_ (0), 00099 done_ (0) 00100 { 00101 priority_ = ACE_Sched_Params::priority_min (this->policy (), this->scope ()); 00102 }
ACE_INLINE ACE_Sched_Priority_Iterator::~ACE_Sched_Priority_Iterator | ( | void | ) |
ACE_INLINE int ACE_Sched_Priority_Iterator::more | ( | void | ) | const |
Check if there are more priorities.
Definition at line 110 of file Sched_Params.inl.
References done_.
00111 { 00112 return !this->done_; 00113 }
ACE_INLINE void ACE_Sched_Priority_Iterator::next | ( | void | ) |
Move to the next priority. The iteration is from lowest to highest importance.
Definition at line 122 of file Sched_Params.inl.
References done_, ACE_Sched_Params::next_priority(), priority(), priority_, and scope().
00123 { 00124 if (this->done_) 00125 return; 00126 00127 int old_priority = this->priority_; 00128 priority_ = ACE_Sched_Params::next_priority (this->policy (), 00129 this->priority (), 00130 this->scope ()); 00131 this->done_ = old_priority == priority_; 00132 }
ACE_INLINE const ACE_Sched_Params::Policy & ACE_Sched_Priority_Iterator::policy | ( | void | ) | const |
Accessor for the scheduling policy over which we are iterating.
Definition at line 82 of file Sched_Params.inl.
References policy_.
00083 { 00084 return this->policy_; 00085 }
ACE_INLINE int ACE_Sched_Priority_Iterator::priority | ( | void | ) | const |
Return the current priority.
Definition at line 116 of file Sched_Params.inl.
References priority_.
Referenced by next().
00117 { 00118 return this->priority_; 00119 }
ACE_INLINE int ACE_Sched_Priority_Iterator::scope | ( | void | ) | const |
Accessor for the scheduling.
Definition at line 88 of file Sched_Params.inl.
References scope_.
Referenced by ACE_Sched_Priority_Iterator(), and next().
00089 { 00090 return this->scope_; 00091 }
int ACE_Sched_Priority_Iterator::done_ [private] |
This is set to 1 when there are no more priorities. Cannot easily compare against the highest priority on platforms were priorities are non-contigous or descending.
Definition at line 222 of file Sched_Params.h.
The Scheduling policy (FIFO, RR, etc.) and scheduling scope (PROCESS, SYSTEM) we are iterating on.
Definition at line 211 of file Sched_Params.h.
Referenced by policy().
int ACE_Sched_Priority_Iterator::priority_ [private] |
The current priority.
Definition at line 215 of file Sched_Params.h.
Referenced by ACE_Sched_Priority_Iterator(), next(), and priority().
int ACE_Sched_Priority_Iterator::scope_ [private] |