目录
一个环形buffer,在尾部追加数据,从头部读取数据,适合用作IO的缓冲区。
详细介绍可参考:https://en.wikipedia.org/wiki/Circular_buffer
一.使用QList和QByteArray
这个方法参考的是Qt源码中的QRingBuffer类,这个类不是Qt API的一部分,所以Qt助手里是查不到的,它的存在只是为了服务其他的源码。
QRingBuffer的源文件在D:\Qt\Qt5.7.0\5.7\Src\qtbase\src\corelib\tools目录中,由qringbuffer_p.h和qringbuffer.cpp实现。
QRingBuffer实现的环形缓冲区大概如下图所示。
qringbuffer.h
#ifndef QRINGBUFFER_P_H
#define QRINGBUFFER_P_H
#include <QByteArray>
#include <QList>
#ifndef QRINGBUFFER_CHUNKSIZE
#define QRINGBUFFER_CHUNKSIZE 4096
#endif
enu