CPI_CircleBuffer.h
上传用户:hxb_1234
上传日期:2010-03-30
资源大小:8328k
文件大小:1k
源码类别:

VC书籍

开发平台:

Visual C++

  1. typedef void* CP_HCIRCLEBUFFER;  
  2. typedef void (*pfn_CircleBufferUninitialise)(CP_HCIRCLEBUFFER bBuffer);
  3. //
  4. typedef void (*pfn_CircleBufferWrite)(CP_HCIRCLEBUFFER bBuffer, const void* pSourceBuffer, const unsigned int iNumBytes);
  5. typedef BOOL (*pfn_CircleBufferRead)(CP_HCIRCLEBUFFER bBuffer, void* pDestBuffer, const unsigned int iBytesToRead, unsigned int* pbBytesRead);
  6. typedef unsigned int (*pfn_CircleGetUsedSpace)(CP_HCIRCLEBUFFER bBuffer);
  7. typedef unsigned int (*pfn_CircleGetFreeSpace)(CP_HCIRCLEBUFFER bBuffer);
  8. typedef void (*pfn_CircleFlush)(CP_HCIRCLEBUFFER bBuffer);
  9. typedef void (*pfn_CircleSetComplete)(CP_HCIRCLEBUFFER bBuffer);
  10. typedef BOOL (*pfn_CircleIsComplete)(CP_HCIRCLEBUFFER bBuffer);
  11. //
  12. typedef struct _CPs_CircleBuffer
  13. {
  14.     pfn_CircleBufferUninitialise Uninitialise;
  15.     pfn_CircleBufferWrite Write;
  16.     pfn_CircleBufferRead Read;
  17.     pfn_CircleFlush Flush;
  18.     pfn_CircleGetUsedSpace GetUsedSize;
  19.     pfn_CircleGetFreeSpace GetFreeSize;
  20.     pfn_CircleSetComplete SetComplete;
  21.     pfn_CircleIsComplete IsComplete;
  22.     BYTE* m_pBuffer;
  23.     unsigned int m_iBufferSize;
  24.     unsigned int m_iReadCursor;
  25.     unsigned int m_iWriteCursor;
  26.     HANDLE m_evtDataAvailable;
  27.     CRITICAL_SECTION m_csCircleBuffer;
  28.     BOOL m_bComplete;
  29. } CPs_CircleBuffer;
  30. //
  31. ////////////////////////////////////////////////////////////////////////////////
  32. CPs_CircleBuffer* CP_CreateCircleBuffer(const unsigned int iBufferSize);