buffer就是一段内存,tc_buffer是对基本buffer操作的封装。 通过类来管理_buffer指针, 它指向堆内存, 释放如下:
~TC_Buffer()
{
delete[] _buffer;
}
从如下可以看到, 内存以2倍扩张:
inline static std::size_t RoundUp2Power(std::size_t size)
{
if (size == 0)
return 0;
std::size_t roundUp = 1;
while (roundUp < size)
roundUp *= 2;
return roundUp;
}
看了下其他操作, 无非就是内存的各种申请, 释放, 拷贝而已。 其实, 可以把tc_buffer看成是一个类似string的类, 相当于一个通用内存容器, 动态扩张。
tc_buffer是一个与内存紧密相关的操作, 写源码的人, 需要相当注意, 不然各种呵呵哒的问题就出来了。
不多说。