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:

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 *)
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 API
Posting Version: CORE_8.508.1.1