#include <ctaskqueue.h>


Public Member Functions | |
| CTaskQueue () | |
| void | initialize () |
| Create a sequence map of one complete cycle through priorities and task list by task index number into mSequence. | |
| ITask * | next () |
| virtual | ~CTaskQueue () |
Private Attributes | |
| CMachine::ubit32 | mIndex |
| CByteArray | mSequence |
Definition at line 34 of file ctaskqueue.h.
| PikeAero::CTaskQueue::CTaskQueue | ( | ) |
| PikeAero::CTaskQueue::~CTaskQueue | ( | ) | [virtual] |
| void PikeAero::CTaskQueue::initialize | ( | void | ) |
Create a sequence map of one complete cycle through priorities and task list by task index number into mSequence.
worst case
Definition at line 40 of file ctaskqueue.cpp.
References PikeAero::CObjectList::at(), PikeAero::CMemHeap::compress(), PikeAero::CObjectList::count(), mIndex, mSequence, PikeAero::ITask::priority(), PikeAero::ITask::PriorityHigh, PikeAero::ITask::PriorityLow, PikeAero::CByteArray::resize(), and PikeAero::CByteArray::set().
Referenced by PikeAero::CTaskScheduler::run().
00041 { 00042 mIndex=0; 00043 mSequence.resize(count()*(ITask::PriorityHigh+1)); /** worst case */ 00044 for( CMachine::ubit32 priority=(CMachine::ubit32)ITask::PriorityLow; priority <= (CMachine::ubit32)ITask::PriorityHigh; priority++ ) 00045 { 00046 for( CMachine::ubit32 taskid=0; taskid < count(); taskid++ ) 00047 { 00048 ITask* task = (ITask*)at(taskid); 00049 if ( (CMachine::ubit32)task->priority() >= priority ) 00050 { 00051 mSequence.set( mIndex++, (CMachine::ubit8)taskid ); 00052 } 00053 } 00054 } 00055 mSequence.resize(mIndex); 00056 CMemHeap::compress(); 00057 mIndex=0; 00058 }


| ITask* PikeAero::CTaskQueue::next | ( | ) | [inline] |
Definition at line 40 of file ctaskqueue.h.
References PikeAero::CByteArray::at(), PikeAero::CObjectList::at(), mIndex, mSequence, and PikeAero::CByteArray::size().
Referenced by PikeAero::CTaskScheduler::run1().


CMachine::ubit32 PikeAero::CTaskQueue::mIndex [private] |
CByteArray PikeAero::CTaskQueue::mSequence [private] |
1.5.8