Files
hasherezade-bearparser/parser/ByteBuffer.h
T
2014-08-16 18:50:39 +02:00

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;
};