Skip to content

Latest commit

 

History

History
34 lines (30 loc) · 846 Bytes

File metadata and controls

34 lines (30 loc) · 846 Bytes
class Buffer {
    Buffer(); //初始化大小为1024 + 8,前置8个空闲字节空间
    //peek类函数 不移动m_readerIndex
    peek...()
    //read类函数 移动m_readerIndex
    retrieve...();
    //appene类函数 移动m_writerIndex
    append...();
    //prepend类函数 在m_readerIndex之前添加数据,并将m_readerIndex减小
    prepend...();
    //扩容函数, append时,如果Buffer的writeableBytes不够,需要进行扩容
    ensureWriteableBytes(size_t len) {
        if (writeableBytes() < len) {
            makeSpace(len);
        }
        assert(writeableBytes() >= len);
    }
    makeSpace();
    std::vector<char> m_buffer;
    size_t m_readerIndex;
    size_t m_writerIndex;
};

初始化

写数据

读数据