![]() |
CMGDK r49-rc2
|
多线程环形数据流 更多...
#include <RingBuffer.H>
公有成员 | |
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::_SafeReadStart | ( | bool | peek | ) | [protected] |
int hgl::RingBuffer::_SafeWriteStart | ( | ) | [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] |
取得可写入数据长度
从流中读取数据
读取数据
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 | ( | ) |
安全取得可写入数据长度
安全读取,用于简单的一次性读取
安全的读取数据,,此函数会直接开锁解锁,用于少量的一次性处理。如大量的数据要分次读取,请使用SafeReadStart/SafeReadEnd
data | 欲将访问数据存放的内存地址,可为NULL用于单纯后移读取指针 |
size | 欲访问的数据长度 |
peek | 是否真的取出数据 |
int hgl::RingBuffer::SafeReadEnd | ( | ) |
安全结束读取
安全读取结束
int hgl::RingBuffer::SafeReadStart | ( | bool | peek = true | ) |
安全开始读取
开始读取数据,如果没有数据会立即关闭缓冲区,不必再次调用SafeReadEnd
peek | 是否真的取出数据 |
int hgl::RingBuffer::SafeTryReadStart | ( | bool | peek = true | ) |
安全尝试开始读取
尝试开始读取数据,如失败或没有数据会立即解锁,不必再次调用SafeReadEnd
peek | 是否真的取出数据 |
int hgl::RingBuffer::SafeTryWriteStart | ( | ) |
安全尝试开始写入
尝试开始写入
安全写入,用于简单的一次性写入
安全写入数据,此函数会直接开锁解锁,用于少量的一次性处理。如大量的数据要分次写入,请使用SafeWriteStart/SafeWriteEnd
data | 要写入的数据 |
size | 要写入的数据长度 |
int hgl::RingBuffer::SafeWriteEnd | ( | ) |
安全结束写入
安全写入结束
int hgl::RingBuffer::SafeWriteStart | ( | ) |
安全开始写入
开始写入数据,如果没有空间会立即关闭缓冲区,不必再次调用SafeWriteEnd
向流中写入数据
结束写入数据
data | 要写入的数据 |
size | 要写入的数据长度 |
int hgl::RingBuffer::WriteEnd | ( | ) |
结束写入
写入结束
int hgl::RingBuffer::WriteStart | ( | ) |
开始写入
char* hgl::RingBuffer::buffer [protected] |
int hgl::RingBuffer::buffer_size [protected] |
int hgl::RingBuffer::read_count [protected] |
int hgl::RingBuffer::read_cur [protected] |
int hgl::RingBuffer::read_max [protected] |
int hgl::RingBuffer::read_off [protected] |
bool hgl::RingBuffer::read_peek [protected] |
int hgl::RingBuffer::read_pos [protected] |
int hgl::RingBuffer::write_count [protected] |
int hgl::RingBuffer::write_cur [protected] |
int hgl::RingBuffer::write_max [protected] |
int hgl::RingBuffer::write_off [protected] |
int hgl::RingBuffer::write_pos [protected] |