• 首页
  • 文件
  • 下载
  • 状态
  • 常见问题
  • 邮件列表
  • 应用程序
  • 外部链结
  • 版权
  • 志愿者
  • 联络

类别:LoopBuffer

循环缓冲区


类型 使用 成员 说明
建构子 public LoopBuffer(void)
建构子 public LoopBuffer(int size,int margin)
解构子 public ~LoopBuffer(void)
资料 protected unsigned char * buffer 缓冲区。
资料 protected int Size 缓冲区大小。
资料 protected int Margin 留空区域大小。
资料 protected int Start 开始位置。
资料 protected int Tail 结尾位置。
函式 public int size (void) const 缓冲区大小。
函式 public int margin (void) const 留空区域大小。
函式 public int start (void) const 开始位置。
函式 public int tail (void) const 结尾位置。
函式 public int setBufferSize (int size) 设定缓冲区大小。
函式 public int setMargin (int margin) 设定留空区域大小。
函式 public void reset (void) 将开始位置与结尾位置归零。
函式 public int available (void) 缓冲资料大小。
函式 public bool isEmpty (void) 缓冲资料是否为零。
函式 public bool isFull (void) 缓冲资料是否大于Size - Margin。
函式 public int put (void * data,int length) 数据输入缓冲区。
函式 public int get (void * data,int length) 从缓冲区中取得数据。

说明

循环缓冲区一般用于快取时间固定时间大小的音讯输出入,它记录大约Size - Margin的数据,Margin的使用,目的是尽可能不导致缓冲区溢出的问题发生。

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   ;

};