Files
2025-04-21 23:09:16 +02:00

33 lines
931 B
C++

#pragma once
#include "AbstractByteBuffer.h"
#define DEFAULT_PADDING 2
class ByteBuffer : public AbstractByteBuffer
{
public:
ByteBuffer(bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding = DEFAULT_PADDING);
virtual ~ByteBuffer();
virtual bufsize_t getContentSize() { return contentSize; }
virtual BYTE* getContent() { return content; }
virtual bool resize(bufsize_t newSize);
virtual bool isResized() { return originalSize != contentSize; }
protected:
BYTE* allocContent(bufsize_t v_size, bufsize_t padding);
BYTE *content;
bufsize_t contentSize;
bufsize_t padding;
bufsize_t originalSize;
private:
void _init(const bufsize_t& v_size, const bufsize_t& v_padding = DEFAULT_PADDING);
};