内存缓存是简单的在内存进行读写操作的一种传输,任何时候想在上面写入数据都是放入缓存中,任何时候读操作数据也是来至于缓存。内存缓存的分配使用c语言的malloc类函数,分配的长度是需要长度的两倍,需要考虑这些内存缓存的使用范围。
同样这个类继承至缓存基类TBufferBase,默认的缓存大小是1024(static const uint32_t defaultSize = 1024;),所有的构造函数都调用函数initCommon,这个函数实现如下:
voidinitCommon(uint8_t* buf, uint32_t size, bool owner, uint32_t wPos) {
if (buf== NULL && size != 0) {//如果传递过来的buf为null并且size不为0
assert(owner);//断言这个内存缓存是不是自己所有,不是就报错不继续执行后面的代码了
buf =(uint8_t*)std::malloc(size);//是自己拥有的内存缓存就自己分配size大小的内存作为缓存
if(buf == NULL) {
throw std::bad_alloc();//分配失败抛出异常
}
}
buffer_= buf;//初始化缓存成员变量
bufferSize_ = size;//大小
rBase_= buffer_;基地址
rBound_= buffer_ + wPos;//界限
wBase_= buffer_ + wPos;//写缓存基地址
wBound_= buffer_ + bufferSize_;