a
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
#pragma once
|
||||
#include "ConcurrentList.h"
|
||||
|
||||
class ProducerThread
|
||||
{
|
||||
public:
|
||||
virtual bool StartThread();
|
||||
virtual bool StopThread();
|
||||
|
||||
protected:
|
||||
ProducerThread();
|
||||
virtual ~ProducerThread();
|
||||
|
||||
protected:
|
||||
virtual void ThreadFunction() = 0;
|
||||
|
||||
private:
|
||||
static unsigned int __stdcall TheThread(void *pParam);
|
||||
|
||||
protected:
|
||||
bool m_bEngineRunning;
|
||||
HANDLE m_hHandle;
|
||||
|
||||
};
|
||||
|
||||
class ConsumerThread
|
||||
{
|
||||
public:
|
||||
virtual bool StartThread();
|
||||
virtual bool StopThread();
|
||||
|
||||
protected:
|
||||
ConsumerThread();
|
||||
virtual ~ConsumerThread();
|
||||
|
||||
void PutDataToQue(void * pData);
|
||||
|
||||
virtual void ReleaseData( void* pData ) = 0;
|
||||
|
||||
virtual void ConsumeDataFromQue( void * pData ) = 0;
|
||||
|
||||
private:
|
||||
static unsigned int __stdcall TheThread(void *pParam);
|
||||
|
||||
protected:
|
||||
ConcurrentList<void*> m_queData;
|
||||
|
||||
private:
|
||||
bool m_bEngineRunning;
|
||||
HANDLE m_hHandle;
|
||||
};
|
||||
|
||||
|
||||
class MultiConsumerThread
|
||||
{
|
||||
public:
|
||||
virtual bool StartThread(int iThread);
|
||||
virtual bool StopThread();
|
||||
|
||||
protected:
|
||||
MultiConsumerThread();
|
||||
virtual ~MultiConsumerThread();
|
||||
|
||||
void PutDataToQue(void * pData);
|
||||
|
||||
virtual void ReleaseData( void* pData ) = 0;
|
||||
|
||||
virtual void ConsumeDataFromQue( void * pData ) = 0;
|
||||
|
||||
private:
|
||||
static unsigned int __stdcall TheThread(void *pParam);
|
||||
|
||||
protected:
|
||||
ConcurrentList<void*> m_queData;
|
||||
|
||||
private:
|
||||
bool m_bEngineRunning;
|
||||
vector<HANDLE> m_vecHandle;
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user