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

OsclExecSchedulerCommonBase Class Reference
[OSCL Proc]

#include <oscl_scheduler.h>

Inheritance diagram for OsclExecSchedulerCommonBase:

OsclExecScheduler

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 *)
PVActiveBaseUpdateTimers (uint32 &aDelay)
PVActiveBaseUpdateTimersMsec (uint32 &aDelay)
PVActiveBaseWaitForReadyAO ()
void CallRunExec (PVActiveBase *)
void ConstructStatQ ()
void BeginStats ()
void EndStats ()
void CleanupStatQ ()
PVActiveBaseFindPVBase (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
PVSchedulerStopperiStopper
OsclNoYieldMutex iStopperCrit
PVThreadContext iThreadContext
OsclNameString< PVSCHEDNAMELEN > iName
bool iDoStop
bool iDoSuspend
bool iSuspended
OsclSemaphore iResumeSem
OsclErrorTrapImpiErrorTrapImp
OsclReadyQ iReadyQ
OsclTimerQ iExecTimerQ
uint32 iNumAOAdded
OsclDoubleList< PVActiveStatsiPVStatQ
PVActiveStatsiOtherExecStats [EOtherExecStats_Last]
uint8 * iTotalTicksTemp
int64 iGrandTotalTicks
float iTotalPercent
uint32 iTime
int32 iDelta
PVActiveStatsiPVStats
PVLoggeriLogger
PVLoggeriDebugLogger
char * iLogPerfIndentStr
int32 iLogPerfIndentStrLen
uint32 iLogPerfTotal
Oscl_DefAllociAlloc
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 API
Posting Version: OPENCORE_20090310