#ifndef BUFFER_H#define BUFFER_H#include <cstring>#include <iostream>#include <unistd.h>#include <sys/uio.h>#include <vector>#include <atomic>#include <cassert>using namespace std;class Buffer{public:Buffer(int initBuffSize = 1024);~Buffer() = default;size_t writableBytes() const;size_t readableBytes() const;size_t prependableBytes() const;const char* peek() const;void ensureWritable(size_t len);void hasWritten(size_t len);void retrieve(size_t len);void retrieveUntil(const char* end);void retrieveAll();string retrieveAllToStr();const char* beginWriteConst() const;char* beginWrite();void append(const string& str);void append(const char* str, size_t len);void append(const void* data, size_t len);void append(const Buffer& buffer);ssize_t readfd(int fd, int* Errno);ssize_t writefd(int fd, int* Errno);private:char* beginPtr();const char* beginPtr() const;void makeSpace(size_t len);vector<char> buffer;atomic<size_t> readPos;atomic<size_t> writePos;};#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。