#ifndef __DSCThread_h__
#define __DSCThread_h__ 1
#include "DSLThread.h"
#include "PrivateTypes.h"
const sInt32 kEventPeriod = 60; const sInt32 kLongPeriod = 10; const sInt32 kShortPeriod = 5;
const uInt32 kMinPerHour = 60;
const uInt32 kSecondsPerMin = 60;
const uInt32 kMilliSecsPerSec = 1000;
const uInt32 kMicroSecsPerSec = 1000*1000;
const uInt32 kNanoSecPerSec = 1000*1000*1000;
const uInt32 kBadValue = 0xffffffff;
void ** const kThreadIgnoreResult = NULL;
class DSCThread : public DSLThread
{
public:
enum eSignature {
kTSUndefinedThread = '----',
kTSMainThread = 'main',
kTSAppThread = 'appt',
kTSHandlerThread = 'hndl',
kTSInternalHandlerThread = 'ihdl',
kTSCheckpwHandlerThread = 'cpht',
kTSPlugInHndlrThread = 'pihn',
kTSListenerThread = 'lstn',
kTSLauncherThread = 'lnch',
kTSNodeRegisterThread = 'ndrg',
kTSTCPListenerThread = 'tcpl',
kTSTCPConnectionThread = 'tcpc',
kTSTCPHandlerThread = 'tcph'
};
enum eRunState {
kThreadRun = 0x00000000,
kThreadStop = 0x00000001,
kThreadWait = 0x00000002
};
DSCThread ( const OSType inThreadSig = 0 );
virtual ~DSCThread ( void );
public:
static uInt32 GetCurThreadRunState ( void );
static sInt32 Count ( void );
virtual uInt32 GetID ( void ) const;
virtual OSType GetSignature ( void ) const;
protected:
virtual void* Run ( void );
virtual long ThreadMain ( void ) = 0; virtual void LastChance ( void ) { }
virtual uInt32 GetThreadRunState ( void );
virtual void SetThreadRunState ( eRunState inState );
virtual void SetThreadRunStateFlag ( eRunState inStateFlag );
virtual void UnSetThreadRunStateFlag ( eRunState inStateFlag );
static sInt32 fStatThreadCount;
protected:
FourCharCode fThreadSignature;
private:
uInt32 fStateFlags;
};
#endif // __DSCThread_h__