Files
CodeRepository/Common/GCycleQueue.h
chenzhen 222dda1e43 1,新增“App_ThermalImageSystem”;
2,新增“Apps”;
3,新增“Common”;
4,新增“FileList”;
5,新增“MediaX”;
6,新增“OpenSource”;
7,新增“Samples”;
8,新增“SoftwareBusinessLines”.
2026-02-14 23:03:23 +08:00

38 lines
1017 B
C++

#ifndef __GCircleQueue_H__
#define __GCircleQueue_H__
#include <QMutex>
#include <QMutexLocker>
#include <QWaitCondition>
#include <Windows.h>
const int DEFAULT_QUEUE_SIZE = 8; //默认队列长度
class GCycleQueue
{
public:
GCycleQueue();
virtual ~GCycleQueue();
bool InitQueue(int nFrameSize, int nQueueSize = DEFAULT_QUEUE_SIZE);
bool PushBack(unsigned char* pFrameData, int nFrameSize,int& nRes);
bool GetFront(unsigned char* pFrameData, int& nFrameSize);
bool GetBack(unsigned char* pFrameData, int& nFrameSize);
bool IsEmpty();
void Clear();
int Size();
protected:
void DestroyQueue();
private:
const int m_nFrameSize;
int m_nQueueSize;
unsigned char* m_ptrFrameQueue;
// unsigned char (*m_ptrFrameQueue)[MAX_FRAME_SIZE];
int m_nFront;
int m_nTail;
QMutex m_mutex;
};
#endif // !__GCircleQueue_H__