OsclExecSchedulerCommonBase Class Reference
[OSCL Proc]

#include <oscl_scheduler.h>

Inheritance diagram for OsclExecSchedulerCommonBase:
OsclExecScheduler

Public Member Functions

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 Member Functions

static OSCL_IMPORT_REF
OsclNameString< PVSCHEDNAMELEN > * 
GetName ()
static OSCL_IMPORT_REF uint32 GetId ()

Protected Member Functions

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 *)
PVActiveBaseUpdateTimers (uint32 &aDelay)
PVActiveBaseUpdateTimersMsec (uint32 &aDelay)
PVActiveBaseWaitForReadyAO ()
void CallRunExec (PVActiveBase *)
PVActiveBaseFindPVBase (PVActiveBase *active, OsclDoubleList< PVActiveBase > &)
void CleanupExecQ ()
void InitExecQ (int)
void ResetLogPerf ()
void IncLogPerf (uint32)

Static Protected Member Functions

static
OsclExecSchedulerCommonBase
GetScheduler ()
static
OsclExecSchedulerCommonBase
SetScheduler (OsclExecSchedulerCommonBase *)

Protected Attributes

bool iBlockingMode
bool iNativeMode
PVSchedulerStopperiStopper
OsclNoYieldMutex iStopperCrit
PVThreadContext iThreadContext
OsclNameString< PVSCHEDNAMELEN > iName
bool iDoStop
bool iDoSuspend
bool iSuspended
OsclSemaphore iResumeSem
OsclErrorTrapImpiErrorTrapImp
OsclReadyQ iReadyQ
OsclTimerQ iExecTimerQ
uint32 iNumAOAdded
PVLoggeriLogger
PVLoggeriDebugLogger
char * iLogPerfIndentStr
int32 iLogPerfIndentStrLen
uint32 iLogPerfTotal
Oscl_DefAllociAlloc
OsclMemAllocator iDefAlloc

Static Protected Attributes

static const uint32 iTimeCompareThreshold

Friends

class OsclScheduler
class PVThreadContext
class OsclCoeActiveScheduler
class OsclTimerCompare
class OsclReadyQ
class OsclError
class OsclActiveObject
class OsclTimerObject
class PVActiveBase
class PVSchedulerStopper
class OsclExecScheduler

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::BlockingLoopL (  )  [protected]
void OsclExecSchedulerCommonBase::CallRunExec ( PVActiveBase  )  [protected]
void OsclExecSchedulerCommonBase::CleanupExecQ (  )  [protected]
virtual void OsclExecSchedulerCommonBase::ConstructL ( const char *  name,
int   
) [protected, virtual]
void OsclExecSchedulerCommonBase::EndScheduling (  )  [protected]
void OsclExecSchedulerCommonBase::Error ( int32  anError  )  const [protected]
PVActiveBase* OsclExecSchedulerCommonBase::FindPVBase ( PVActiveBase active,
OsclDoubleList< PVActiveBase > &   
) [protected]
static OSCL_IMPORT_REF uint32 OsclExecSchedulerCommonBase::GetId (  )  [static]

Get numeric ID of current thread.

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

Get name of scheduler for current thread.

static 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.

static OsclExecSchedulerCommonBase* OsclExecSchedulerCommonBase::SetScheduler ( OsclExecSchedulerCommonBase  )  [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 PVSchedulerStopper [friend]
friend class PVThreadContext [friend]

Field Documentation

const uint32 OsclExecSchedulerCommonBase::iTimeCompareThreshold [static, protected]

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

OSCL API
Posting Version: CORE_9.004.1.1