代码拉取完成,页面将自动刷新
//
// Created by lester on 2023/12/21.
//
#ifndef TEST_LENGTHBUFFER_H
#define TEST_LENGTHBUFFER_H
template<size_t SIZE>
class LengthBuffer
{
public:
LengthBuffer(){
memZero();
cur_ = data_array_;
}
void Append(const void* data,size_t size);
void Append(const char* data,size_t size);
const char* begin() const{
return data_array_;
}
char* begin() {
return data_array_;
}
const char* end() const{
return &data_array_[SIZE];
}
char* end(){
return &data_array_[SIZE];
}
size_t length() const {
return end() - begin();
}
size_t avail(){
return end() - cur_;
}
void memZero(){
memset(begin(),0,end()-begin());
}
void Reset(){
cur_ = data_array_;
memZero();
}
const char* Cur() const
{
return cur_;
}
char* Cur(){
return cur_;
}
private:
char data_array_[SIZE];
char* cur_;
};
template<size_t SIZE>
void LengthBuffer<SIZE>::Append(const void *data, size_t size) {
Append((const char*)data,size);
}
template<size_t SIZE>
void LengthBuffer<SIZE>::Append(const char *data, size_t size) {
if(avail() >= size){
memcpy(Cur(),data,size);
cur_ += size;
}
}
using SmallBuffer = LengthBuffer<1024>;
using MiddleBuffer = LengthBuffer<2048>;
using LargeBuffer = LengthBuffer<4096>;
#endif //TEST_LENGTHBUFFER_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。