CMGDK r49-rc2
公有成员 | 保护成员 | 保护属性
hgl::RingBuffer类参考

多线程环形数据流 更多...

#include <RingBuffer.H>

继承图,类hgl::RingBuffer
hgl::ThreadMutex

所有成员的列表。

公有成员

 RingBuffer (int)
 本类构造函数
virtual ~RingBuffer ()
 本类析构函数
const int GetBufferSize () const
 除取缓冲区长度
void Clear ()
 清除整个缓冲区
void SafeClear ()
 安全清除整个缓冲区
int WriteStart ()
 开始写入
int GetWriteSize () const
 取得可写入数据长度
int Write (const void *, int)
 向流中写入数据
int WriteEnd ()
 结束写入
int SafeTryWriteStart ()
 安全尝试开始写入
int SafeWriteStart ()
 安全开始写入
int SafeWriteEnd ()
 安全结束写入
int SafeGetWriteSize ()
 安全取得可写入数据长度
int SafeWrite (const void *, int)
 安全写入,用于简单的一次性写入
int ReadStart (bool=true)
 开始读取
int GetReadSize () const
 取得可读取数据长度
int Read (void *, int, bool=true)
 从流中读取数据
int ReadEnd ()
 结束写入
int SafeTryReadStart (bool=true)
 安全尝试开始读取
int SafeReadStart (bool=true)
 安全开始读取
int SafeReadEnd ()
 安全结束读取
int SafeGetReadSize ()
 安全取得可读取数据长度
int SafeRead (void *, int, bool=true)
 安全读取,用于简单的一次性读取

保护成员

void ClampPosition ()
int _GetReadSize () const
int _GetWriteSize () const
int _SafeWriteStart ()
int _SafeReadStart (bool)
int _Write (const void *, int)
int _Read (void *, int, bool)

保护属性

char * buffer
int buffer_size
int read_pos
int write_pos
int read_cur
int write_cur
int read_off
int write_off
int read_max
int write_max
int read_count
int write_count
bool read_peek

详细描述

多线程环形数据流

多线程环形数据流,用于随时被读或写的情况以及在多线程应用中同时被读与写的情况。


构造及析构函数文档

hgl::RingBuffer::RingBuffer ( int  size)

本类构造函数

hgl::RingBuffer::~RingBuffer ( ) [virtual]

本类析构函数


成员函数文档

int hgl::RingBuffer::_GetReadSize ( ) const [inline, protected]
int hgl::RingBuffer::_GetWriteSize ( ) const [inline, protected]
int hgl::RingBuffer::_Read ( void *  data,
int  size,
bool  peek 
) [protected]
int hgl::RingBuffer::_SafeReadStart ( bool  peek) [protected]
int hgl::RingBuffer::_SafeWriteStart ( ) [protected]
int hgl::RingBuffer::_Write ( const void *  data,
int  size 
) [protected]
void hgl::RingBuffer::ClampPosition ( ) [protected]
void hgl::RingBuffer::Clear ( )

清除整个缓冲区

const int hgl::RingBuffer::GetBufferSize ( ) const [inline]

除取缓冲区长度

int hgl::RingBuffer::GetReadSize ( ) const [inline]

取得可读取数据长度

int hgl::RingBuffer::GetWriteSize ( ) const [inline]

取得可写入数据长度

int hgl::RingBuffer::Read ( void *  data,
int  size,
bool  peek = true 
)

从流中读取数据

读取数据

参数:
data欲将访问数据存放的内存地址,可为NULL用于单纯后移读取指针
size欲访问的数据长度
peek是否后移访问指针(默认为真,仅针对当前这一次)
返回:
实际可访问的数据长度
int hgl::RingBuffer::ReadEnd ( )

结束写入

读取结束

返回:
返回读取的数据长度
int hgl::RingBuffer::ReadStart ( bool  peek = true)

开始读取

void hgl::RingBuffer::SafeClear ( )

安全清除整个缓冲区

int hgl::RingBuffer::SafeGetReadSize ( )

安全取得可读取数据长度

int hgl::RingBuffer::SafeGetWriteSize ( )

安全取得可写入数据长度

int hgl::RingBuffer::SafeRead ( void *  data,
int  size,
bool  peek = true 
)

安全读取,用于简单的一次性读取

安全的读取数据,,此函数会直接开锁解锁,用于少量的一次性处理。如大量的数据要分次读取,请使用SafeReadStart/SafeReadEnd

参数:
data欲将访问数据存放的内存地址,可为NULL用于单纯后移读取指针
size欲访问的数据长度
peek是否真的取出数据
返回:
实际读取的数据长度
-1 出错
int hgl::RingBuffer::SafeReadEnd ( )

安全结束读取

安全读取结束

返回:
返回读取的数据长度
int hgl::RingBuffer::SafeReadStart ( bool  peek = true)

安全开始读取

开始读取数据,如果没有数据会立即关闭缓冲区,不必再次调用SafeReadEnd

参数:
peek是否真的取出数据
返回:
可供读取的数据数量
int hgl::RingBuffer::SafeTryReadStart ( bool  peek = true)

安全尝试开始读取

尝试开始读取数据,如失败或没有数据会立即解锁,不必再次调用SafeReadEnd

参数:
peek是否真的取出数据
返回:
>0 可供读取的数据数量
=0 没有可供读取的数据
<0 暂时不能读取
int hgl::RingBuffer::SafeTryWriteStart ( )

安全尝试开始写入

尝试开始写入

返回:
>0 成功开始,可写入的数据长度
=0 没有可以写入的空间
<0 暂时不可写入
int hgl::RingBuffer::SafeWrite ( const void *  data,
int  size 
)

安全写入,用于简单的一次性写入

安全写入数据,此函数会直接开锁解锁,用于少量的一次性处理。如大量的数据要分次写入,请使用SafeWriteStart/SafeWriteEnd

参数:
data要写入的数据
size要写入的数据长度
返回:
实际写入的数据长度
-1 出错
int hgl::RingBuffer::SafeWriteEnd ( )

安全结束写入

安全写入结束

返回:
返回写入的数据长度
int hgl::RingBuffer::SafeWriteStart ( )

安全开始写入

开始写入数据,如果没有空间会立即关闭缓冲区,不必再次调用SafeWriteEnd

返回:
可写入的数据长度
int hgl::RingBuffer::Write ( const void *  data,
int  size 
)

向流中写入数据

结束写入数据

参数:
data要写入的数据
size要写入的数据长度
返回:
实际写入的数据长度
int hgl::RingBuffer::WriteEnd ( )

结束写入

写入结束

返回:
返回写入的数据长度
int hgl::RingBuffer::WriteStart ( )

开始写入


成员数据文档

char* hgl::RingBuffer::buffer [protected]
bool hgl::RingBuffer::read_peek [protected]

该类的文档由以下文件生成:
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义