diff --git a/_byte_buffer_8cpp_source.html b/_byte_buffer_8cpp_source.html index 2cbe5797..753b9398 100644 --- a/_byte_buffer_8cpp_source.html +++ b/_byte_buffer_8cpp_source.html @@ -98,7 +98,7 @@ $(function(){ initResizable(false); });
4ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t v_padding)
5 : content(nullptr), contentSize(0), padding(v_padding),
-
6 originalSize(0)
+
6 originalSize(0), m_refs(0)
7{
8 if (v_size == 0) throw BufferException("Zero size requested");
9
@@ -111,7 +111,7 @@ $(function(){ initResizable(false); });
15ByteBuffer::ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t v_padding)
16 : content(nullptr), contentSize(0), padding(v_padding),
- +
17 originalSize(0), m_refs(0)
18{
19 if (v_size == 0) throw BufferException("Zero size requested");
20
@@ -127,7 +127,7 @@ $(function(){ initResizable(false); });
30 : content(NULL), contentSize(0), padding(0),
- +
31 originalSize(0), m_refs(0)
32{
33 if (!v_parent) throw BufferException("Cannot make subBuffer for NULL buffer!");
34 if (!v_size) throw BufferException("Cannot make 0 size buffer!");
@@ -213,13 +213,14 @@ $(function(){ initResizable(false); });
virtual BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
-
bufsize_t originalSize
Definition ByteBuffer.h:28
-
BYTE * content
Definition ByteBuffer.h:24
+
bufsize_t originalSize
Definition ByteBuffer.h:44
+
BYTE * content
Definition ByteBuffer.h:40
virtual ~ByteBuffer()
-
bufsize_t contentSize
Definition ByteBuffer.h:25
+
bufsize_t contentSize
Definition ByteBuffer.h:41
ByteBuffer(bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)
Definition ByteBuffer.cpp:4
+
size_t m_refs
Definition ByteBuffer.h:46
BYTE * allocContent(bufsize_t v_size, bufsize_t padding)
-
bufsize_t padding
Definition ByteBuffer.h:26
+
bufsize_t padding
Definition ByteBuffer.h:42
virtual bool resize(bufsize_t newSize)
diff --git a/_byte_buffer_8h_source.html b/_byte_buffer_8h_source.html index 09591f10..c8e1f916 100644 --- a/_byte_buffer_8h_source.html +++ b/_byte_buffer_8h_source.html @@ -105,41 +105,66 @@ $(function(){ initResizable(false); });
10 ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
11 ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding = DEFAULT_PADDING);
12
-
13 virtual ~ByteBuffer();
-
14
-
15 virtual bufsize_t getContentSize() { return contentSize; }
-
16 virtual BYTE* getContent() { return content; }
-
17 virtual bool resize(bufsize_t newSize);
-
18
-
19 virtual bool isResized() { return originalSize != contentSize; }
-
20
-
21protected:
-
22 BYTE* allocContent(bufsize_t v_size, bufsize_t padding);
-
23
-
24 BYTE *content;
-
25 bufsize_t contentSize;
-
26 bufsize_t padding;
-
27
-
28 bufsize_t originalSize;
-
29};
+
+
13 static bool release(ByteBuffer* buf)
+
14 {
+
15 if (!buf) return false;
+
16 if (buf->m_refs == 0) {
+
17 delete buf;
+
18 return true;
+
19 }
+
20 buf->m_refs--;
+
21 return false;
+
22 }
+
23
+
+
24 void addRef()
+
25 {
+
26 m_refs++;
+
27 }
+
+
28
+
29 virtual ~ByteBuffer();
30
+
31 virtual bufsize_t getContentSize() { return contentSize; }
+
32 virtual BYTE* getContent() { return content; }
+
33 virtual bool resize(bufsize_t newSize);
+
34
+
35 virtual bool isResized() { return originalSize != contentSize; }
+
36
+
37protected:
+
38 BYTE* allocContent(bufsize_t v_size, bufsize_t padding);
+
39
+
40 BYTE *content;
+
41 bufsize_t contentSize;
+
42 bufsize_t padding;
+
43
+
44 bufsize_t originalSize;
+
45
+
46 size_t m_refs;
+
47};
+
+
48
AbstractByteBuffer.h
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
DEFAULT_PADDING
#define DEFAULT_PADDING
Definition ByteBuffer.h:4
AbstractByteBuffer::AbstractByteBuffer
AbstractByteBuffer()
Definition AbstractByteBuffer.h:36
-
ByteBuffer::getContent
virtual BYTE * getContent()
Definition ByteBuffer.h:16
-
ByteBuffer::getContentSize
virtual bufsize_t getContentSize()
Definition ByteBuffer.h:15
-
ByteBuffer::isResized
virtual bool isResized()
Definition ByteBuffer.h:19
-
ByteBuffer::originalSize
bufsize_t originalSize
Definition ByteBuffer.h:28
-
ByteBuffer::content
BYTE * content
Definition ByteBuffer.h:24
+
ByteBuffer::getContent
virtual BYTE * getContent()
Definition ByteBuffer.h:32
+
ByteBuffer::addRef
void addRef()
Definition ByteBuffer.h:24
+
ByteBuffer::getContentSize
virtual bufsize_t getContentSize()
Definition ByteBuffer.h:31
+
ByteBuffer::isResized
virtual bool isResized()
Definition ByteBuffer.h:35
+
ByteBuffer::originalSize
bufsize_t originalSize
Definition ByteBuffer.h:44
+
ByteBuffer::content
BYTE * content
Definition ByteBuffer.h:40
ByteBuffer::~ByteBuffer
virtual ~ByteBuffer()
Definition ByteBuffer.cpp:98
-
ByteBuffer::contentSize
bufsize_t contentSize
Definition ByteBuffer.h:25
+
ByteBuffer::contentSize
bufsize_t contentSize
Definition ByteBuffer.h:41
ByteBuffer::ByteBuffer
ByteBuffer(bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)
Definition ByteBuffer.cpp:4
+
ByteBuffer::m_refs
size_t m_refs
Definition ByteBuffer.h:46
ByteBuffer::allocContent
BYTE * allocContent(bufsize_t v_size, bufsize_t padding)
Definition ByteBuffer.cpp:52
-
ByteBuffer::padding
bufsize_t padding
Definition ByteBuffer.h:26
+
ByteBuffer::padding
bufsize_t padding
Definition ByteBuffer.h:42
ByteBuffer::resize
virtual bool resize(bufsize_t newSize)
Definition ByteBuffer.cpp:79
+
ByteBuffer::release
static bool release(ByteBuffer *buf)
Definition ByteBuffer.h:13