summaryrefslogtreecommitdiff
path: root/source/modules/asura-utils/io/data_buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/asura-utils/io/data_buffer.h')
-rw-r--r--source/modules/asura-utils/io/data_buffer.h35
1 files changed, 30 insertions, 5 deletions
diff --git a/source/modules/asura-utils/io/data_buffer.h b/source/modules/asura-utils/io/data_buffer.h
index 445bdf4..61d158b 100644
--- a/source/modules/asura-utils/io/data_buffer.h
+++ b/source/modules/asura-utils/io/data_buffer.h
@@ -22,17 +22,33 @@ namespace AsuraEngine
LUAX_DECL_FACTORY(DataBuffer);
DataBuffer(DataBuffer& src);
- DataBuffer(std::size_t size);
+ DataBuffer(std::size_t capacity);
DataBuffer(const void* bytes, std::size_t size);
~DataBuffer();
byte* GetData();
size_t GetSize();
-
- void Refactor(size_t size);
- size_t Load(DataBuffer& db);
- size_t Load(const void* bytes, std::size_t size);
+ size_t GetCapacity();
+
+ ///
+ /// ޸
+ ///
+ void Refactor(size_t capacity);
+
+ ///
+ /// Դ˻
+ ///
+ void Load(DataBuffer& db);
+ void Load(const void* bytes, std::size_t size);
+
+ ///
+ /// bytesӵȨcapacityΪsize
+ ///
void Move(void* bytes, std::size_t size);
+
+ ///
+ ///
+ ///
void Clear();
void Lock();
@@ -40,14 +56,23 @@ namespace AsuraEngine
private:
+ ///
+ /// Buffer׵ַݵij
+ ///
byte* mBytes;
size_t mSize;
+ ///
+ /// Buffer
+ ///
+ size_t mCapacity;
+
AEThreading::Mutex mMutex;
LUAX_DECL_METHOD(_New);
LUAX_DECL_METHOD(_GetData);
LUAX_DECL_METHOD(_GetSize);
+ LUAX_DECL_METHOD(_GetCapacity);
LUAX_DECL_METHOD(_Refactor);
LUAX_DECL_METHOD(_Load);
LUAX_DECL_METHOD(_Clear);