From 6a065c913e9308cc72e1ad0723b6167048f439b6 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 8 Aug 2019 08:56:51 +0800 Subject: *misc --- Source/modules/asura-base/FileSystem/DataBuffer.h | 132 +++++++++++----------- 1 file changed, 65 insertions(+), 67 deletions(-) (limited to 'Source/modules/asura-base/FileSystem/DataBuffer.h') diff --git a/Source/modules/asura-base/FileSystem/DataBuffer.h b/Source/modules/asura-base/FileSystem/DataBuffer.h index ace372e..da302ce 100644 --- a/Source/modules/asura-base/FileSystem/DataBuffer.h +++ b/Source/modules/asura-base/FileSystem/DataBuffer.h @@ -6,81 +6,79 @@ #include "../Scripting/Scripting.h" #include "../Threads/Mutex.h" -namespace AsuraEngine +namespace_begin(AsuraEngine) +namespace_begin(FileSystem) + +/// +/// 对内存数据的封装,所有的数据使用Data buffer包装,不直接使用const void*。通过resource manager读取。 +/// +class DataBuffer ASURA_FINAL + : public AEScripting::Portable { - namespace FileSystem - { - - /// - /// 对内存数据的封装,所有的数据使用Data buffer包装,不直接使用const void*。通过resource manager读取。 - /// - class DataBuffer ASURA_FINAL - : public AEScripting::Portable - { - public: - - LUAX_DECL_FACTORY(DataBuffer); - - DataBuffer(DataBuffer& src); - DataBuffer(std::size_t capacity); - DataBuffer(const void* bytes, std::size_t size); - ~DataBuffer(); - - byte* GetData(); - size_t GetSize(); - 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(); - void Unlock(); +public: + + LUAX_DECL_FACTORY(DataBuffer); + + DataBuffer(DataBuffer& src); + DataBuffer(std::size_t capacity); + DataBuffer(const void* bytes, std::size_t size); + ~DataBuffer(); + + byte* GetData(); + size_t GetSize(); + 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(); + void Unlock(); - private: +private: - 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); + 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); - /// - /// Buffer首地址和里面数据的长度 - /// - byte* m_Bytes; - size_t m_Size; + /// + /// Buffer首地址和里面数据的长度 + /// + byte* m_Bytes; + size_t m_Size; - /// - /// Buffer容量。 - /// - size_t m_Capacity; + /// + /// Buffer容量。 + /// + size_t m_Capacity; - AEThreading::Mutex m_Mutex; + AEThreading::Mutex m_Mutex; - }; +}; - } -} +namespace_end +namespace_end namespace AEFileSystem = AsuraEngine::FileSystem; -- cgit v1.1-26-g67d0