mirror of
https://github.com/hasherezade/bearparser
synced 2026-06-08 14:32:38 +00:00
45 lines
1019 B
C++
45 lines
1019 B
C++
#pragma once
|
|
#include "AbstractByteBuffer.h"
|
|
|
|
#define DEFAULT_PADDING 2
|
|
|
|
class ByteSubBuffer;
|
|
|
|
class ByteBuffer : public AbstractByteBuffer
|
|
{
|
|
public:
|
|
ByteBuffer(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; }
|
|
|
|
protected:
|
|
BYTE* allocContent(bufsize_t v_size, bufsize_t padding);
|
|
|
|
BYTE *content;
|
|
bufsize_t contentSize;
|
|
bufsize_t padding;
|
|
};
|
|
|
|
|
|
class ByteSubBuffer : public AbstractByteBuffer
|
|
{
|
|
public:
|
|
ByteSubBuffer(AbstractByteBuffer *parent, offset_t offset, bufsize_t size);
|
|
virtual ~ByteSubBuffer() { }
|
|
|
|
virtual bufsize_t getContentSize();
|
|
virtual BYTE* getContent();
|
|
|
|
bufsize_t getRequestedSize() const { return size; }
|
|
|
|
protected:
|
|
AbstractByteBuffer *parent;
|
|
offset_t offset;
|
|
bufsize_t size;
|
|
};
|
|
|