• 首頁
  • 文件
  • 下載
  • 狀態
  • 常見問題
  • 郵件列表
  • 應用程式
  • 外部鏈結
  • 版權
  • 志願者
  • 聯繫

類別:LoopBuffer

循環緩衝區

類型 使用 成員 說明
建構子 public LoopBuffer(void)
建構子 public LoopBuffer(
CaInt32 elementSizeBytes,
CaInt32 elementCount,
void * dataPtr)

解構子 public ~RingBuffer(void)
資料 public CaInt32 bufferSize
資料 public volatile CaInt32 writeIndex
資料 public volatile CaInt32 readIndex
資料 public CaInt32 bigMask
資料 public CaInt32 smallMask
資料 public CaInt32 elementSizeBytes
資料 public char * buffer
函式 public virtual CaInt32 Initialize (CaInt32 elementSizeBytes ,
CaInt32 elementCount ,
void * dataPtr )

函式 public virtual CaInt32 ReadAvailable (void)
函式 public virtual CaInt32 WriteAvailable (void)
函式 public virtual void Flush (void)
函式 public virtual CaInt32 WriteRegions (CaInt32 elementCount ,
void ** dataPtr1 ,
CaInt32 * sizePtr1 ,
void ** dataPtr2 ,
CaInt32 * sizePtr2 )

函式 public virtual CaInt32 AdvanceWriteIndex (CaInt32 elementCount)
函式 public virtual CaInt32 ReadRegions (CaInt32 elementCount ,
void ** dataPtr1 ,
CaInt32 * sizePtr1 ,
void ** dataPtr2 ,
CaInt32 * sizePtr2 )

函式 public virtual CaInt32 AdvanceReadIndex (CaInt32 elementCount)
函式 public virtual CaInt32 Write (const void * data,CaInt32 elementCount)
函式 public virtual CaInt32 Read (void * data,CaInt32 elementCount)

C/C++定義

class LoopBuffer
{
  public:

    explicit LoopBuffer    (void) ;
             LoopBuffer    (int size,int margin) ;
    virtual ~LoopBuffer    (void) ;

    int      size          (void) const ;
    int      margin        (void) const ;
    int      start         (void) const ;
    int      tail          (void) const ;

    int      setBufferSize (int size) ;
    int      setMargin     (int margin) ;

    void     reset         (void) ;
    int      available     (void) ;
    bool     isEmpty       (void) ;
    bool     isFull        (void) ;

    int      put           (void * data,int length) ;
    int      get           (void * data,int length) ;

  protected:

    unsigned char * buffer ;
    int             Size   ;
    int             Margin ;
    int             Start  ;
    int             Tail   ;

};