/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IOAdapterSeeking.cpp Date: 2022-6-6 Author: Reece ***/ #include #include #include "IOAdapterSeeking.hpp" namespace Aurora::IO { SeekingReader::SeekingReader(const AuSPtr &reader) : reader(reader) { } EStreamError SeekingReader::IsOpen() { return this->reader ? this->reader->IsOpen() : EStreamError::eErrorStreamNotOpen; } EStreamError SeekingReader::Read(const Memory::MemoryViewStreamWrite ¶meters) { auto error = this->reader ? this->reader->ArbitraryRead(this->index, parameters) : EStreamError::eErrorStreamNotOpen; if (error == EStreamError::eErrorNone) { this->index += parameters.outVariable; } return error; } void SeekingReader::Close() { if (this->reader) { this->reader->Close(); } } AUKN_SYM AuSPtr NewSeekingReadAdapter(const AuSPtr &reader) { return AuMakeShared(reader); } }