/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: FileStream.hpp Date: 2021-6-10 Author: Reece ***/ #pragma once namespace Aurora::IO::FS { class IFileStream { public: virtual AuUInt64 GetOffset() = 0; virtual bool SetOffset(AuUInt64 offset) = 0; virtual AuUInt64 GetLength() = 0; virtual bool Read(const Memory::MemoryViewStreamWrite ¶meters) = 0; virtual bool Write(const Memory::MemoryViewStreamRead ¶meters) = 0; virtual void Close() = 0; virtual void Flush() = 0; }; AUKN_SHARED_API(OpenRead, IFileStream, const AuString &path); AUKN_SHARED_API(OpenWrite, IFileStream, const AuString &path); }