queue.h

来自「自己在wince的环境下做的一移动数字电视驱动」· C头文件 代码 · 共 51 行

H
51
字号
#ifndef _DATAQUEUE_H_
#define _DATAQUEUE_H_

#pragma once
//
// CDataQueue Class Declarations
//
#define PBYTE unsigned char *
#define BYTE unsigned char

class CDataQueue
{
   
	PBYTE       mpBuf;
	DWORD       mSize;
	DWORD       mHead;
	DWORD       mTail;
	DWORD       mState;
	BOOL        mIsEos;
	DWORD		mSum;
   
	CRITICAL_SECTION    mStateLock;

public:
	CDataQueue(DWORD dwSize, BOOL *phr);
	virtual ~CDataQueue();

	unsigned int GetSum();	
	DWORD       FreeSize();
	DWORD       FillSize();
	void        Initialize();
	DWORD       Peek(DWORD dwPos, DWORD dwSize);
	void		Clear();
	void        Flush(DWORD dwSize);
	void        Fill(DWORD dwSize);
	void        SetState(DWORD dwState) { mState = dwState; }
	void        SetEndOfStream(BOOL bEOS) { mIsEos = bEOS; }
	DWORD       GetState(void) { return mState; }
	BOOL        IsEndOfStream(void) { return mIsEos; }
	DWORD       Get(BYTE *pbDst, DWORD dwBytesToCopy);
	DWORD       Put(BYTE *pbSrc, DWORD dwBytesToCopy);
   
	DWORD		PeekLocked(DWORD dwPos, DWORD dwSize);
	DWORD		GetLocked(BYTE *pbDst, DWORD dwPos, DWORD dwBytesToCopy);

private:
   
	void        GetInputBufPointer(PBYTE *ppbBuf, PBYTE *ppbBuf2, DWORD *pdwSize, DWORD *pdwSize2);
	void        GetOutputBufPointer(PBYTE *ppbBuf, PBYTE *ppbBuf2, DWORD *pdwSize, DWORD *pdwSize2);
};
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?