/*** Copyright (C) 2024 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuIOAdapterRandom.cpp Date: 2024-1-3 Author: Reece ***/ #include #include "AuIOAdapterRandom.hpp" namespace Aurora::IO::Adapters { RandomStreamReader::RandomStreamReader(AuSPtr pRandomDevice) : pRandomDevice(pRandomDevice) { } EStreamError RandomStreamReader::IsOpen() { return bool(this->pRandomDevice) ? EStreamError::eErrorNone : EStreamError::eErrorStreamNotOpen; } EStreamError RandomStreamReader::Read(const Memory::MemoryViewStreamWrite ¶meters) { parameters.outVariable = 0; if (!parameters) { return EStreamError::eErrorOutOfBounds; } if (auto pRandomDevice = this->pRandomDevice) { pRandomDevice->Read(parameters); parameters.outVariable = parameters.length; return EStreamError::eErrorNone; } else { return EStreamError::eErrorStreamNotOpen; } } void RandomStreamReader::Close() { AuResetMember(this->pRandomDevice); } AUKN_SYM AuSPtr NewRandomAdapter(const AuSPtr &pRandomDevice) { SysCheckArgNotNull(pRandomDevice, {}); SysCheckRetExpNotNullMemory(AuMakeShared(pRandomDevice), {}); } }