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

类别:RingBuffer

环状缓冲区

类型 使用 成员 说明
建构子 public RingBuffer(void)
建构子 public RingBuffer(
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 RingBuffer
{
  public:

    CaInt32          bufferSize       ;
    volatile CaInt32 writeIndex       ;
    volatile CaInt32 readIndex        ;
    CaInt32          bigMask          ;
    CaInt32          smallMask        ;
    CaInt32          elementSizeBytes ;
    char           * buffer           ;

    explicit RingBuffer               (void) ;
             RingBuffer               (CaInt32 elementSizeBytes ,
                                       CaInt32 elementCount     ,
                                       void  * dataPtr        ) ;
    virtual ~RingBuffer               (void) ;

    virtual CaInt32 Initialize        (CaInt32 elementSizeBytes ,
                                       CaInt32 elementCount     ,
                                       void  * dataPtr        ) ;
    virtual CaInt32 ReadAvailable     (void) ;
    virtual CaInt32 WriteAvailable    (void) ;
    virtual void    Flush             (void) ;
    virtual CaInt32 WriteRegions      (CaInt32    elementCount ,
                                       void    ** dataPtr1     ,
                                       CaInt32  * sizePtr1     ,
                                       void    ** dataPtr2     ,
                                       CaInt32  * sizePtr2   ) ;
    virtual CaInt32 AdvanceWriteIndex (CaInt32 elementCount) ;
    virtual CaInt32 ReadRegions       (CaInt32    elementCount ,
                                       void    ** dataPtr1     ,
                                       CaInt32  * sizePtr1     ,
                                       void    ** dataPtr2     ,
                                       CaInt32  * sizePtr2   ) ;
    virtual CaInt32 AdvanceReadIndex  (CaInt32 elementCount) ;

    virtual CaInt32 Write             (const void * data,CaInt32 elementCount) ;
    virtual CaInt32 Read              (void * data,CaInt32 elementCount) ;

};