Main Page Modules Class Hierarchy Data Structures File List Data Fields Globals Related Pages

# OsclExecSchedulerCommonBase Class Reference
[OSCL Proc]

`#include <oscl_scheduler.h>`

Inheritance diagram for OsclExecSchedulerCommonBase:

## Public Methods
OSCL_IMPORT_REF void | StartScheduler (OsclSemaphore *sem=NULL)
OSCL_IMPORT_REF void | StopScheduler ()
OSCL_IMPORT_REF void | SuspendScheduler ()
OSCL_IMPORT_REF void | ResumeScheduler ()
OSCL_IMPORT_REF void | StartNativeScheduler ()
## Static Public Methods
OSCL_IMPORT_REF OsclNameString< PVSCHEDNAMELEN > * | GetName ()
OSCL_IMPORT_REF uint32 | GetId ()
## Protected Types
enum | TOtherExecStats { EOtherExecStats_WaitTime, EOtherExecStats_QueueTime, EOtherExecStats_NativeOS, EOtherExecStats_ReleaseTime, EOtherExecStats_Last }
## Protected Methods
virtual | ~OsclExecSchedulerCommonBase ()
void | InstallScheduler ()
void | UninstallScheduler ()
void | Error (int32 anError) const
| OsclExecSchedulerCommonBase (Oscl_DefAlloc *)
virtual void | ConstructL (const char *name, int)
void | BeginScheduling (bool blocking, bool native)
void | EndScheduling ()
void | BlockingLoopL ()
bool | IsStarted ()
bool | IsInstalled ()
void | AddToExecTimerQ (PVActiveBase *active, uint32)
void | PendComplete (PVActiveBase *, int32 aReason, TPVThreadContext aContext)
void | RequestCanceled (PVActiveBase *)
PVActiveBase * | UpdateTimers (uint32 &aDelay)
PVActiveBase * | UpdateTimersMsec (uint32 &aDelay)
PVActiveBase * | WaitForReadyAO ()
void | CallRunExec (PVActiveBase *)
void | ConstructStatQ ()
void | BeginStats ()
void | EndStats ()
void | CleanupStatQ ()
PVActiveBase * | FindPVBase (PVActiveBase *active, OsclDoubleList< PVActiveBase > &)
void | CleanupExecQ ()
void | InitExecQ (int)
void | ResetLogPerf ()
void | IncLogPerf (uint32)
## Static Protected Methods
OsclExecSchedulerCommonBase * | GetScheduler ()
OsclExecSchedulerCommonBase * | SetScheduler (OsclExecSchedulerCommonBase *)
void | ShowStats (PVActiveStats *active)
void | ShowSummaryStats (PVActiveStats *active, PVLogger *, int64, int64 &, float &)
## Protected Attributes
bool | iBlockingMode
bool | iNativeMode
PVSchedulerStopper * | iStopper
OsclNoYieldMutex | iStopperCrit
PVThreadContext | iThreadContext
OsclNameString< PVSCHEDNAMELEN > | iName
bool | iDoStop
bool | iDoSuspend
bool | iSuspended
OsclSemaphore | iResumeSem
OsclErrorTrapImp * | iErrorTrapImp
OsclReadyQ | iReadyQ
OsclTimerQ | iExecTimerQ
uint32 | iNumAOAdded
OsclDoubleList< PVActiveStats > | iPVStatQ
PVActiveStats * | iOtherExecStats [EOtherExecStats_Last]
uint8 * | iTotalTicksTemp
int64 | iGrandTotalTicks
float | iTotalPercent
uint32 | iTime
int32 | iDelta
PVActiveStats * | iPVStats
PVLogger * | iLogger
PVLogger * | iDebugLogger
char * | iLogPerfIndentStr
int32 | iLogPerfIndentStrLen
uint32 | iLogPerfTotal
Oscl_DefAlloc * | iAlloc
OsclMemAllocator | iDefAlloc
## Static Protected Attributes
const uint32 | iTimeCompareThreshold
## Friends
class | OsclScheduler
class | PVThreadContext
class | OsclCoeActiveScheduler
class | OsclTimerCompare
class | OsclReadyQ
class | OsclError
class | PVActiveStats
class | OsclActiveObject
class | OsclTimerObject
class | PVActiveBase
class | PVSchedulerStopper
class | OsclExecScheduler

## Member Enumeration Documentation

enum OsclExecSchedulerCommonBase::TOtherExecStats`[protected]`

  | Enumeration values:
  EOtherExecStats_WaitTime |
  EOtherExecStats_QueueTime |
  EOtherExecStats_NativeOS |
  EOtherExecStats_ReleaseTime |
  EOtherExecStats_Last |

## Constructor & Destructor Documentation

virtual OsclExecSchedulerCommonBase::~OsclExecSchedulerCommonBase | ( |  | ) | `[protected, virtual]`

OsclExecSchedulerCommonBase::OsclExecSchedulerCommonBase | ( | Oscl_DefAlloc * |  | ) | `[protected]`

## Member Function Documentation

void OsclExecSchedulerCommonBase::AddToExecTimerQ | ( | PVActiveBase * | active,
|  | uint32 |
| ) | `[protected]`

void OsclExecSchedulerCommonBase::BeginScheduling | ( | bool | blocking,
|  | bool | native
| ) | `[protected]`

void OsclExecSchedulerCommonBase::BeginStats | ( |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::BlockingLoopL | ( |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::CallRunExec | ( | PVActiveBase * |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::CleanupExecQ | ( |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::CleanupStatQ | ( |  | ) | `[protected]`

virtual void OsclExecSchedulerCommonBase::ConstructL | ( | const char * | name,
|  | int |
| ) | `[protected, virtual]`

void OsclExecSchedulerCommonBase::ConstructStatQ | ( |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::EndScheduling | ( |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::EndStats | ( |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::Error | ( | int32 | anError | ) | const`[protected]`

PVActiveBase* OsclExecSchedulerCommonBase::FindPVBase | ( | PVActiveBase * | active,
|  | OsclDoubleList< PVActiveBase > & |
| ) | `[protected]`

OSCL_IMPORT_REF uint32 OsclExecSchedulerCommonBase::GetId | ( |  | ) | `[static]`

| Get numeric ID of current thread.

OSCL_IMPORT_REF OsclNameString<PVSCHEDNAMELEN>* OsclExecSchedulerCommonBase::GetName | ( |  | ) | `[static]`

| Get name of scheduler for current thread.

OsclExecSchedulerCommonBase* OsclExecSchedulerCommonBase::GetScheduler | ( |  | ) | `[static, protected]`

void OsclExecSchedulerCommonBase::IncLogPerf | ( | uint32 |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::InitExecQ | ( | int |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::InstallScheduler | ( |  | ) | `[protected]`

bool OsclExecSchedulerCommonBase::IsInstalled | ( |  | ) | `[inline, protected]`

bool OsclExecSchedulerCommonBase::IsStarted | ( |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::PendComplete | ( | PVActiveBase * | ,
|  | int32 | aReason,
|  | TPVThreadContext | aContext
| ) | `[protected]`

void OsclExecSchedulerCommonBase::RequestCanceled | ( | PVActiveBase * |  | ) | `[protected]`

void OsclExecSchedulerCommonBase::ResetLogPerf | ( |  | ) | `[protected]`

OSCL_IMPORT_REF void OsclExecSchedulerCommonBase::ResumeScheduler | ( |  | ) |

| Resume scheduling immediately. This API only applies to a blocking loop scheduler.

OsclExecSchedulerCommonBase* OsclExecSchedulerCommonBase::SetScheduler | ( | OsclExecSchedulerCommonBase * |  | ) | `[static, protected]`

void OsclExecSchedulerCommonBase::ShowStats | ( | PVActiveStats * | active | ) | `[static, protected]`

void OsclExecSchedulerCommonBase::ShowSummaryStats | ( | PVActiveStats * | active,
|  | PVLogger * | ,
|  | int64 | ,
|  | int64 & | ,
|  | float & |
| ) | `[static, protected]`

OSCL_IMPORT_REF void OsclExecSchedulerCommonBase::StartNativeScheduler | ( |  | ) |

| Start the OS native scheduling loop. This is an alternative to the PV scheduling loop. To stop the native scheduler, use the StopScheduler API.

OSCL_IMPORT_REF void OsclExecSchedulerCommonBase::StartScheduler | ( | OsclSemaphore * | sem = NULL | ) |

  | Start scheduling. This call blocks until scheduler is stopped or an error occurs. Parameters:
  sem: | optional startup semaphore. If provied, the scheduler will signal this semaphore when the startup has progressed to the point that it's safe to call StopScheduler or SuspendScheduler from another thread.

OSCL_IMPORT_REF void OsclExecSchedulerCommonBase::StopScheduler | ( |  | ) |

| Stop scheduling. This API may be called from the scheduling thread or some other thread.

OSCL_IMPORT_REF void OsclExecSchedulerCommonBase::SuspendScheduler | ( |  | ) |

| Suspend scheduling when the current Run is complete. This API only applies to a blocking loop scheduler.

void OsclExecSchedulerCommonBase::UninstallScheduler | ( |  | ) | `[protected]`

PVActiveBase* OsclExecSchedulerCommonBase::UpdateTimers | ( | uint32 & | aDelay | ) | `[protected]`

PVActiveBase* OsclExecSchedulerCommonBase::UpdateTimersMsec | ( | uint32 & | aDelay | ) | `[protected]`

PVActiveBase* OsclExecSchedulerCommonBase::WaitForReadyAO | ( |  | ) | `[protected]`

## Friends And Related Function Documentation

friend class OsclActiveObject`[friend]`

friend class OsclCoeActiveScheduler`[friend]`

friend class OsclError`[friend]`

friend class OsclExecScheduler`[friend]`

friend class OsclReadyQ`[friend]`

friend class OsclScheduler`[friend]`

| Reimplemented in OsclExecScheduler.

friend class OsclTimerCompare`[friend]`

friend class OsclTimerObject`[friend]`

friend class PVActiveBase`[friend]`

friend class PVActiveStats`[friend]`

friend class PVSchedulerStopper`[friend]`

friend class PVThreadContext`[friend]`

## Field Documentation

Oscl_DefAlloc* OsclExecSchedulerCommonBase::iAlloc`[protected]`

bool OsclExecSchedulerCommonBase::iBlockingMode`[protected]`

PVLogger* OsclExecSchedulerCommonBase::iDebugLogger`[protected]`

OsclMemAllocator OsclExecSchedulerCommonBase::iDefAlloc`[protected]`

int32 OsclExecSchedulerCommonBase::iDelta`[protected]`

bool OsclExecSchedulerCommonBase::iDoStop`[protected]`

bool OsclExecSchedulerCommonBase::iDoSuspend`[protected]`

OsclErrorTrapImp* OsclExecSchedulerCommonBase::iErrorTrapImp`[protected]`

OsclTimerQ OsclExecSchedulerCommonBase::iExecTimerQ`[protected]`

int64 OsclExecSchedulerCommonBase::iGrandTotalTicks`[protected]`

PVLogger* OsclExecSchedulerCommonBase::iLogger`[protected]`

char* OsclExecSchedulerCommonBase::iLogPerfIndentStr`[protected]`

int32 OsclExecSchedulerCommonBase::iLogPerfIndentStrLen`[protected]`

uint32 OsclExecSchedulerCommonBase::iLogPerfTotal`[protected]`

OsclNameString<PVSCHEDNAMELEN> OsclExecSchedulerCommonBase::iName`[protected]`

bool OsclExecSchedulerCommonBase::iNativeMode`[protected]`

uint32 OsclExecSchedulerCommonBase::iNumAOAdded`[protected]`

PVActiveStats* OsclExecSchedulerCommonBase::iOtherExecStats[EOtherExecStats_Last]`[protected]`

OsclDoubleList<PVActiveStats> OsclExecSchedulerCommonBase::iPVStatQ`[protected]`

PVActiveStats* OsclExecSchedulerCommonBase::iPVStats`[protected]`

OsclReadyQ OsclExecSchedulerCommonBase::iReadyQ`[protected]`

OsclSemaphore OsclExecSchedulerCommonBase::iResumeSem`[protected]`

PVSchedulerStopper* OsclExecSchedulerCommonBase::iStopper`[protected]`

OsclNoYieldMutex OsclExecSchedulerCommonBase::iStopperCrit`[protected]`

bool OsclExecSchedulerCommonBase::iSuspended`[protected]`

PVThreadContext OsclExecSchedulerCommonBase::iThreadContext`[protected]`

uint32 OsclExecSchedulerCommonBase::iTime`[protected]`

const uint32 OsclExecSchedulerCommonBase::iTimeCompareThreshold`[static, protected]`

float OsclExecSchedulerCommonBase::iTotalPercent`[protected]`

uint8* OsclExecSchedulerCommonBase::iTotalTicksTemp`[protected]`

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

- oscl_scheduler.h