diff options
author | crupest <crupest@outlook.com> | 2022-01-17 01:49:37 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-01-17 01:49:37 +0800 |
commit | 1d929ee2e71e8e18490ed1266175833e6ad5c609 (patch) | |
tree | 21ff8f4ff33b4bc570e3adc99f54a972bfa23dbd /include/cru/common/io/MemoryStream.hpp | |
parent | 570e95f4551385a81eb2cf6f2e386e3b0cb291a8 (diff) | |
download | cru-1d929ee2e71e8e18490ed1266175833e6ad5c609.tar.gz cru-1d929ee2e71e8e18490ed1266175833e6ad5c609.tar.bz2 cru-1d929ee2e71e8e18490ed1266175833e6ad5c609.zip |
...
Diffstat (limited to 'include/cru/common/io/MemoryStream.hpp')
-rw-r--r-- | include/cru/common/io/MemoryStream.hpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/include/cru/common/io/MemoryStream.hpp b/include/cru/common/io/MemoryStream.hpp index 070ef2c6..a1be1354 100644 --- a/include/cru/common/io/MemoryStream.hpp +++ b/include/cru/common/io/MemoryStream.hpp @@ -2,16 +2,19 @@ #include "Stream.hpp" +#include <functional> + namespace cru::io { class CRU_BASE_API MemoryStream : public Stream { public: MemoryStream() = default; - MemoryStream(std::byte* buffer, Index size, bool read_only = false, - bool auto_release = false) + MemoryStream( + std::byte* buffer, Index size, bool read_only = false, + std::function<void(std::byte* buffer, Index size)> release_func = {}) : buffer_(buffer), size_(size), read_only_(read_only), - auto_release_(auto_release) {} + release_func_(std::move(release_func)) {} CRU_DELETE_COPY(MemoryStream) CRU_DELETE_MOVE(MemoryStream) @@ -33,7 +36,7 @@ class CRU_BASE_API MemoryStream : public Stream { std::byte* buffer_ = nullptr; Index size_ = 0; Index position_ = 0; - bool auto_release_ = false; bool read_only_ = false; + std::function<void(std::byte* buffer, Index size)> release_func_; }; } // namespace cru::io |