muduo中的Buffer为封装了的vector。vector为一块连续空间,且其本身具有自动增长的性质,它的迭代器为原始指针,使用起来较为方便。 vector另外Buffer有两个data member,指向该vector中的两个元素,这两个index为int类型。
为什么这两个index为int类型?
vector自带自动扩增功能,要是index为指针的话,扩增之后指针会失效,而int类型不会发生变化
readindex和writeindex把vector分成了三个部分:prependable、readable、writable
各个空间大小计算公式为:
prependable = readIndex
readable = writeIndex - readIndex
writable = size() - writeIndex
Muduo Buffer 里有两个常数 kCheapPrepend ( kCheapPrepend 为8)和 kInitialSize(1024),定义了 prependable 的初始大小和 writable 的初始大小。(readable 的初始大小为 0。)
Buffer数据结构
最新推荐文章于 2024-05-30 15:53:39 发布