Yao Chunli
2022-06-21 e00d5a1575d26f8fec1be6fa8a844203cd66a24c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once
class CMyCircularBuf
{
public:
    CMyCircularBuf();
    ~CMyCircularBuf();
    CMyCircularBuf(int nCapicity);
    CCriticalSection m_critial1;
    int nmCapacity;        //ÈÝÁ¿
    char * pBuffer;
    int WriteP;
    int ReadP;
    int nDataSize;
    bool bIsEmpty;
    bool bIsFull;
public:
    int Alloc(int nCapicity);
    int GetCapicity();
    int GetNextWriteP(int nOffset);
    int GetNextReadP(int nOffset);
    int GetTailRoomSize();
    int GetTailDataSize();
    int GetLeftRoomSize();
    int GetDataSize();
    char * GetWriteBuffer(int * LeftRoomSize);
    int ReleaseWriteBuffer(int AddSize);
    char * GetReadBuffer(int * DataSize);
    int ReleaseReadBuffer(int DelSize);
    bool IsEmpty(){return bIsEmpty;}
    bool IsFull(){return bIsFull;}
    int PushIn(void * pData,int Size);
    int CopyData(void *pData,int Size);
    int DelData(int Size);
    int PopOut(void * pData,int Size);
};