From 49408e92e3828eb0287978c50605690b7c20c784 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 11 Oct 2022 20:26:10 +0800 Subject: Write some notes about file stream. --- include/cru/common/platform/web/WebFileStream.h | 26 ++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'include/cru/common/platform/web/WebFileStream.h') diff --git a/include/cru/common/platform/web/WebFileStream.h b/include/cru/common/platform/web/WebFileStream.h index 66ee0903..171df495 100644 --- a/include/cru/common/platform/web/WebFileStream.h +++ b/include/cru/common/platform/web/WebFileStream.h @@ -1,10 +1,12 @@ #pragma once +#include <_stdio.h> #include "../../PreConfig.h" #ifdef CRU_PLATFORM_EMSCRIPTEN #include "../../io/Stream.h" +#include "cru/common/io/OpenFileFlag.h" namespace cru::platform::web { /** @@ -14,7 +16,29 @@ namespace cru::platform::web { */ class WebFileStream : public io::Stream { public: - // TODO: go on this! + WebFileStream(String path, io::OpenFileFlag flags); + + ~WebFileStream() override; + + public: + bool CanSeek() override; + Index Seek(Index offset, SeekOrigin origin = SeekOrigin::Current) override; + + bool CanRead() override; + Index Read(std::byte* buffer, Index offset, Index size) override; + using Stream::Read; + + bool CanWrite() override; + Index Write(const std::byte* buffer, Index offset, Index size) override; + using Stream::Write; + + void Close() override; + + private: + String path_; + io::OpenFileFlag flags_; + + FILE* file_; }; } // namespace cru::platform::web -- cgit v1.2.3