diff options
author | crupest <crupest@outlook.com> | 2024-10-06 13:57:39 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2024-10-06 13:57:39 +0800 |
commit | dfe62dcf8bcefc523b466e127c3edc4dc2756629 (patch) | |
tree | 1c751a14ba0da07ca2ff805633f97568060aa4c9 /src/common/io/MemoryStream.cpp | |
parent | f51eb955e188858272230a990565931e7403f23b (diff) | |
download | cru-dfe62dcf8bcefc523b466e127c3edc4dc2756629.tar.gz cru-dfe62dcf8bcefc523b466e127c3edc4dc2756629.tar.bz2 cru-dfe62dcf8bcefc523b466e127c3edc4dc2756629.zip |
Rename common to base.
Diffstat (limited to 'src/common/io/MemoryStream.cpp')
-rw-r--r-- | src/common/io/MemoryStream.cpp | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/src/common/io/MemoryStream.cpp b/src/common/io/MemoryStream.cpp deleted file mode 100644 index 4b33d780..00000000 --- a/src/common/io/MemoryStream.cpp +++ /dev/null @@ -1,74 +0,0 @@ -#include "cru/common/io/MemoryStream.h" - -#include <cstring> -#include "cru/common/Exception.h" -#include "cru/common/io/Stream.h" - -namespace cru::io { -MemoryStream::MemoryStream( - std::byte* buffer, Index size, bool read_only, - std::function<void(std::byte* buffer, Index size)> release_func) - : Stream(true, true, !read_only), - buffer_(buffer), - size_(size), - position_(0), - release_func_(std::move(release_func)) { - if (!buffer) { - throw Exception(u"Buffer is nullptr"); - } - if (size <= 0) { - throw Exception(u"Size is 0 or negative."); - } -} - -MemoryStream::~MemoryStream() {} - -void MemoryStream::Close() { DoClose(); } - -Index MemoryStream::DoSeek(Index offset, SeekOrigin origin) { - switch (origin) { - case SeekOrigin::Current: - position_ += offset; - break; - case SeekOrigin::Begin: - position_ = offset; - break; - case SeekOrigin::End: - position_ = size_ + offset; - break; - } - return position_; -} - -Index MemoryStream::DoRead(std::byte* buffer, Index offset, Index size) { - if (position_ + size > size_) { - size = size_ - position_; - } - if (size <= 0) { - return 0; - } - std::memmove(buffer + offset, buffer_ + position_, size); - position_ += size; - return size; -} - -Index MemoryStream::DoWrite(const std::byte* buffer, Index offset, Index size) { - if (position_ + size > size_) { - size = size_ - position_; - } - if (size <= 0) { - return 0; - } - std::memmove(buffer_ + position_, buffer + offset, size); - position_ += size; - return size; -} - -void MemoryStream::DoClose() { - CRU_STREAM_BEGIN_CLOSE - release_func_(buffer_, size_); - buffer_ = nullptr; - release_func_ = {}; -} - -} // namespace cru::io |