PikeAero::ITask Class Reference

#include <itask.h>

Inheritance diagram for PikeAero::ITask:

Inheritance graph
[legend]
Collaboration diagram for PikeAero::ITask:

Collaboration graph
[legend]

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

Detailed Description

Interface to a task object.
Author:
Michael Sharkey <mike@pikeaero.com>

Definition at line 32 of file itask.h.


Member Enumeration Documentation

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.

Enumerator:
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;


Constructor & Destructor Documentation

PikeAero::ITask::ITask (  )  [inline]

Definition at line 49 of file itask.h.

References mFault, mPriority, mSlices, mSlicesPerSecond, mStatus, and PriorityLow.


Member Function Documentation

virtual CMachine::bit32 PikeAero::ITask::fault (  )  [inline, virtual]

CMachine::bit32 PikeAero::ITask::getFault (  )  [inline]

Definition at line 107 of file itask.h.

References mFault.

Referenced by PikeAero::CTaskConsole::monitor().

00107 { return mFault; };

Here is the caller graph for this function:

void PikeAero::ITask::incrementSlices (  )  [inline]

Definition at line 102 of file itask.h.

References mSlices.

Referenced by PikeAero::CTaskScheduler::run1().

00102 { ++mSlices; };

Here is the caller graph for this function:

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.

Returns:
0 on success.

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().

00058 {return 0;}

Here is the caller graph for this function:

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.

Returns:
true if still waiting on I/O, false otherwise.

Reimplemented in PikeAero::CCalculatorEFI, PikeAero::CTaskAggregator, PikeAero::CTaskSupervisor, and PikeAero::CTaskTerminal.

Definition at line 84 of file itask.h.

Referenced by PikeAero::CTaskScheduler::iowait().

00084 {return false;}

Here is the caller graph for this function:

virtual const char* PikeAero::ITask::name (  )  [inline, virtual]

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().

Here is the caller graph for this function:

Priority PikeAero::ITask::priority (  )  [inline]

virtual CMachine::bit32 PikeAero::ITask::run (  )  [inline, virtual]

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); }

Here is the caller graph for this function:

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().

00106 { mFault=fault; };

Here is the caller graph for this function:

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;}

Here is the caller graph for this function:

void PikeAero::ITask::setRunning ( bool  running  )  [inline]

Definition at line 93 of file itask.h.

References mStatus.

Referenced by PikeAero::CTaskScheduler::run1().

00093 { if ( running ) mStatus |= 0x01; else mStatus &= ~0x01; }

Here is the caller graph for this function:

void PikeAero::ITask::setSleeping ( bool  sleeping  )  [inline]

void PikeAero::ITask::setYielding ( bool  yielding  )  [inline]

Definition at line 99 of file itask.h.

References mStatus.

00099 { if ( yielding ) mStatus |= 0x04; else mStatus &= ~0x04; }

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); }

Here is the caller graph for this function:

CMachine::ubit32 PikeAero::ITask::slices (  )  [inline]

Definition at line 103 of file itask.h.

References mSlices.

00103 { return mSlices; }

CMachine::ubit32 PikeAero::ITask::slicesPerSecond (  )  [inline]

Definition at line 104 of file itask.h.

References mSlicesPerSecond.

Referenced by PikeAero::CTaskConsole::monitor().

00104 { return mSlicesPerSecond; }

Here is the caller graph for this function:

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()

Returns:
0 on success.

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().

00063 {return 0;}

Here is the caller graph for this function:

virtual CMachine::bit32 PikeAero::ITask::stop (  )  [inline, virtual]

bool PikeAero::ITask::yielding (  )  [inline]

Definition at line 100 of file itask.h.

References mStatus.

Referenced by PikeAero::CTaskConsole::monitor().

00100 { return (mStatus & 0x04); }

Here is the caller graph for this function:


Field Documentation

Definition at line 109 of file itask.h.

Referenced by getFault(), ITask(), and setFault().

Definition at line 115 of file itask.h.

Referenced by ITask(), priority(), and setPriority().

Definition at line 113 of file itask.h.

Referenced by incrementSlices(), ITask(), perSecond(), and slices().

Definition at line 114 of file itask.h.

Referenced by ITask(), perSecond(), and slicesPerSecond().

Reimplemented in PikeAero::CTaskAggregator.

Definition at line 116 of file itask.h.

Referenced by ITask(), running(), setRunning(), setSleeping(), setYielding(), sleeping(), and yielding().


The documentation for this class was generated from the following file:

Generated on Sun Oct 25 14:00:36 2009 for stingray3 by  doxygen 1.5.8