#include <itask.h>


Public Types | |
| enum | Priority { PriorityLow = 0, PriorityMedium = 1, PriorityHigh = 2, PriorityEvent = 3 } |
Public Member Functions | |
| virtual CMachine::bit32 | fault () |
| CMachine::bit32 | getFault () |
| void | incrementSlices () |
| virtual CMachine::bit32 | init () |
| virtual bool | iowait () |
| ITask () | |
| virtual const char * | name () |
| void | perSecond () |
| Priority | priority () |
| virtual CMachine::bit32 | run () |
| bool | running () |
| void | setFault (CMachine::bit32 fault) |
| void | setPriority (Priority p) |
| void | setRunning (bool running) |
| void | setSleeping (bool sleeping) |
| void | setYielding (bool yielding) |
| bool | sleeping () |
| CMachine::ubit32 | slices () |
| CMachine::ubit32 | slicesPerSecond () |
| virtual CMachine::bit32 | start () |
| virtual CMachine::bit32 | stop () |
| bool | yielding () |
Private Attributes | |
| CMachine::bit32 | mFault |
| Priority | mPriority |
| CMachine::ubit32 | mSlices |
| CMachine::ubit32 | mSlicesPerSecond |
| CMachine::ubit8 | mStatus |
Definition at line 32 of file itask.h.
The StatusBits make up the mStatus word. The state of a task is controlled through manipulating the status bits. No task methods should be called directly ouside of CTaskScheduler asside from methods that operate on the status bits. The CTaskScheduler needs to schedule the actual actions for the appropriate time.
| PriorityLow | |
| PriorityMedium | low priority last |
| PriorityHigh | regular priority task |
| PriorityEvent | high priority task |
Definition at line 42 of file itask.h.
00042 { 00043 PriorityLow =0, /** low priority last */ 00044 PriorityMedium =1, /** regular priority task */ 00045 PriorityHigh =2, /** high priority task */ 00046 PriorityEvent =3 /** task is event driven only*/ 00047 } Priority;
| PikeAero::ITask::ITask | ( | ) | [inline] |
Definition at line 49 of file itask.h.
References mFault, mPriority, mSlices, mSlicesPerSecond, mStatus, and PriorityLow.
00049 { mFault=0; mPriority=PriorityLow; mStatus=0; mSlices=0; mSlicesPerSecond=0; }
| virtual CMachine::bit32 PikeAero::ITask::fault | ( | ) | [inline, virtual] |
The CTaskScheduler will call the fault() method when a fault code was returned by any of the task's other methods.
Reimplemented in PikeAero::CCalculatorEFI, PikeAero::CTaskAggregator, PikeAero::CTaskAnalogInputADC, PikeAero::CTaskConsole, PikeAero::CTaskConsoleBase, PikeAero::CTaskConsolePacket, PikeAero::CTaskFuelInjection, PikeAero::CTaskFuelPressureMonitor, PikeAero::CTaskSupervisor, PikeAero::CTaskTerminal, and PikeAero::CTaskTimeBase.
Definition at line 78 of file itask.h.
| CMachine::bit32 PikeAero::ITask::getFault | ( | ) | [inline] |
Definition at line 107 of file itask.h.
References mFault.
Referenced by PikeAero::CTaskConsole::monitor().
00107 { return mFault; };

| void PikeAero::ITask::incrementSlices | ( | ) | [inline] |
Definition at line 102 of file itask.h.
References mSlices.
Referenced by PikeAero::CTaskScheduler::run1().
00102 { ++mSlices; };

| virtual CMachine::bit32 PikeAero::ITask::init | ( | ) | [inline, virtual] |
called exactly once. perform task initialization such as initializing private variable. other tasks are not guaranteed so do not interract with other tasks at this stage.
Reimplemented in PikeAero::CCalculatorEFI, PikeAero::CTaskAggregator, PikeAero::CTaskConsole, PikeAero::CTaskConsoleBase, PikeAero::CTaskConsolePacket, PikeAero::CTaskSupervisor, and PikeAero::CTaskTerminal.
Definition at line 58 of file itask.h.
Referenced by PikeAero::CTaskScheduler::append().

| virtual bool PikeAero::ITask::iowait | ( | ) | [inline, virtual] |
The CTaskScheduler::iowait() method will call the task's iowait method periodically to test if the task is still in an I/O wait state.
Reimplemented in PikeAero::CCalculatorEFI, PikeAero::CTaskAggregator, PikeAero::CTaskSupervisor, and PikeAero::CTaskTerminal.
Definition at line 84 of file itask.h.
Referenced by PikeAero::CTaskScheduler::iowait().

| virtual const char* PikeAero::ITask::name | ( | ) | [inline, virtual] |
Reimplemented in PikeAero::CCalculatorEFI, PikeAero::CTaskAggregator, PikeAero::CTaskAnalogInputADC, PikeAero::CTaskConsole, PikeAero::CTaskConsoleBase, PikeAero::CTaskConsolePacket, PikeAero::CTaskFuelInjection, PikeAero::CTaskFuelPressureMonitor, PikeAero::CTaskSupervisor, and PikeAero::CTaskTimeBase.
Definition at line 52 of file itask.h.
Referenced by PikeAero::CTaskScheduler::find(), and PikeAero::CTaskConsole::monitor().

| void PikeAero::ITask::perSecond | ( | ) | [inline] |
Reimplemented in PikeAero::CTaskAggregator.
Definition at line 109 of file itask.h.
References mSlices, and mSlicesPerSecond.
Referenced by PikeAero::CTaskAggregator::perSecond().
00109 { mSlicesPerSecond=mSlices; mSlices=0; };

| Priority PikeAero::ITask::priority | ( | ) | [inline] |
Definition at line 91 of file itask.h.
References mPriority.
Referenced by PikeAero::CTaskQueue::initialize(), PikeAero::CTaskConsole::monitor(), PikeAero::CTaskScheduler::tasksEventDriven(), PikeAero::CTaskScheduler::tasksRunning(), and PikeAero::CTaskScheduler::tasksSleeping().
00091 { return mPriority; }

| virtual CMachine::bit32 PikeAero::ITask::run | ( | ) | [inline, virtual] |
called periodically by CTaskScheduler to do a piece of work.
Reimplemented in PikeAero::CCalculatorEFI, PikeAero::CTaskAggregator, PikeAero::CTaskAnalogInputADC, PikeAero::CTaskConsole, PikeAero::CTaskConsoleBase, PikeAero::CTaskConsolePacket, PikeAero::CTaskFuelInjection, PikeAero::CTaskFuelPressureMonitor, PikeAero::CTaskSupervisor, PikeAero::CTaskTerminal, and PikeAero::CTaskTimeBase.
Definition at line 68 of file itask.h.
Referenced by PikeAero::CTaskScheduler::run1().

| bool PikeAero::ITask::running | ( | ) | [inline] |
Reimplemented in PikeAero::CTaskTimeBase.
Definition at line 94 of file itask.h.
References mStatus.
Referenced by PikeAero::CTaskConsole::monitor(), and PikeAero::CTaskScheduler::run1().
00094 { return (mStatus & 0x01); }

| void PikeAero::ITask::setFault | ( | CMachine::bit32 | fault | ) | [inline] |
Definition at line 106 of file itask.h.
References mFault.
Referenced by PikeAero::CTaskScheduler::run1(), PikeAero::CTaskFuelInjection::start(), and PikeAero::CTaskConsoleBase::start().

| void PikeAero::ITask::setPriority | ( | Priority | p | ) | [inline] |
methods that operate on the status bits...
Definition at line 90 of file itask.h.
References mPriority.
Referenced by PikeAero::CTaskAnalogInputADC::CTaskAnalogInputADC(), PikeAero::CTaskFuelPressureMonitor::CTaskFuelPressureMonitor(), and PikeAero::CTaskTerminal::init().
00090 { mPriority = p;}

| void PikeAero::ITask::setRunning | ( | bool | running | ) | [inline] |
| void PikeAero::ITask::setSleeping | ( | bool | sleeping | ) | [inline] |
Definition at line 96 of file itask.h.
References mStatus.
Referenced by PikeAero::CTaskFuelPressureMonitor::event(), PikeAero::CTaskFuelInjection::event(), PikeAero::CTaskAnalogInputADC::event(), PikeAero::CTaskAggregator::event(), PikeAero::CTaskTimeBase::irq(), PikeAero::CTaskTimeBase::run(), PikeAero::CTaskFuelPressureMonitor::run(), PikeAero::CTaskFuelInjection::run(), PikeAero::CTaskAnalogInputADC::run(), PikeAero::CTaskAggregator::run(), PikeAero::CTaskTimeBase::start(), PikeAero::CTaskFuelPressureMonitor::start(), PikeAero::CTaskFuelInjection::start(), PikeAero::CTaskAnalogInputADC::start(), PikeAero::CTaskAggregator::start(), PikeAero::CTaskTimeBase::stop(), PikeAero::CTaskFuelPressureMonitor::stop(), PikeAero::CTaskFuelInjection::stop(), and PikeAero::CTaskAnalogInputADC::stop().

| void PikeAero::ITask::setYielding | ( | bool | yielding | ) | [inline] |
| bool PikeAero::ITask::sleeping | ( | ) | [inline] |
Definition at line 97 of file itask.h.
References mStatus.
Referenced by PikeAero::CTaskConsole::monitor(), PikeAero::CTaskScheduler::run1(), PikeAero::CTaskScheduler::tasksRunning(), and PikeAero::CTaskScheduler::tasksSleeping().
00097 { return (mStatus & 0x02); }

| CMachine::ubit32 PikeAero::ITask::slices | ( | ) | [inline] |
| CMachine::ubit32 PikeAero::ITask::slicesPerSecond | ( | ) | [inline] |
Definition at line 104 of file itask.h.
References mSlicesPerSecond.
Referenced by PikeAero::CTaskConsole::monitor().
00104 { return mSlicesPerSecond; }

| virtual CMachine::bit32 PikeAero::ITask::start | ( | ) | [inline, virtual] |
called exactly once. all tasks are initialized at this point. called just prior to first call to run()
Reimplemented in PikeAero::CCalculatorEFI, PikeAero::CTaskAggregator, PikeAero::CTaskAnalogInputADC, PikeAero::CTaskConsole, PikeAero::CTaskConsoleBase, PikeAero::CTaskConsolePacket, PikeAero::CTaskFuelInjection, PikeAero::CTaskFuelPressureMonitor, PikeAero::CTaskSupervisor, PikeAero::CTaskTerminal, and PikeAero::CTaskTimeBase.
Definition at line 63 of file itask.h.
Referenced by PikeAero::CTaskScheduler::start().

| virtual CMachine::bit32 PikeAero::ITask::stop | ( | ) | [inline, virtual] |
The CTaskScheduler will call the stop () method after the task was scheduled for cancelation.
Reimplemented in PikeAero::CCalculatorEFI, PikeAero::CTaskAggregator, PikeAero::CTaskAnalogInputADC, PikeAero::CTaskConsole, PikeAero::CTaskConsoleBase, PikeAero::CTaskConsolePacket, PikeAero::CTaskFuelInjection, PikeAero::CTaskFuelPressureMonitor, PikeAero::CTaskSupervisor, PikeAero::CTaskTerminal, and PikeAero::CTaskTimeBase.
Definition at line 73 of file itask.h.
| bool PikeAero::ITask::yielding | ( | ) | [inline] |
Definition at line 100 of file itask.h.
References mStatus.
Referenced by PikeAero::CTaskConsole::monitor().
00100 { return (mStatus & 0x04); }

CMachine::bit32 PikeAero::ITask::mFault [private] |
Priority PikeAero::ITask::mPriority [private] |
CMachine::ubit32 PikeAero::ITask::mSlices [private] |
Definition at line 113 of file itask.h.
Referenced by incrementSlices(), ITask(), perSecond(), and slices().
CMachine::ubit8 PikeAero::ITask::mStatus [private] |
Reimplemented in PikeAero::CTaskAggregator.
Definition at line 116 of file itask.h.
Referenced by ITask(), running(), setRunning(), setSleeping(), setYielding(), sleeping(), and yielding().
1.5.8