50 lines
938 B
C++
50 lines
938 B
C++
#pragma once
|
|
#ifndef __THREADING_H__
|
|
#define __THREADING_H__
|
|
|
|
//#ifdef WIN32
|
|
#define THREAD DWORD
|
|
//typedef DWORD (*PTHREAD_START_ROUTINE)(LPVOID);
|
|
//#else
|
|
//#define THREAD void*
|
|
//typedef void* (*PTHREAD_START_ROUTINE)(void*);
|
|
//#endif
|
|
|
|
class CPortableSemaphore
|
|
{
|
|
//virtual void Initialize()=0;
|
|
};
|
|
|
|
class CPortableLock
|
|
{
|
|
public:
|
|
virtual void SetSemaphore(CPortableSemaphore*)=0;
|
|
virtual void Lock()=0;
|
|
virtual void Unlock()=0;
|
|
virtual bool IsLocked()=0;
|
|
};
|
|
|
|
class CPortableThread
|
|
{
|
|
public:
|
|
virtual bool BeginThread(LPTHREAD_START_ROUTINE function, void* pInfo, bool bWait)=0;
|
|
virtual void EndThread()=0;
|
|
virtual void AbortThread()=0;
|
|
bool bThreading;
|
|
bool CloseThread;
|
|
bool ThreadReady;
|
|
void *Info;
|
|
};
|
|
|
|
class CPortableSignal
|
|
{
|
|
public:
|
|
virtual void Wait(unsigned int Timeout, CPortableLock* unlockme=0)=0;
|
|
virtual void Wait(CPortableLock* unlockme=0)=0;
|
|
virtual void Release()=0;
|
|
virtual void Signal(bool*)=0;
|
|
};
|
|
|
|
#endif
|
|
|