/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: BufferedLineReader.hpp Date: 2022-1-29 Author: Reece ***/ #pragma once namespace Aurora::IO::Character { struct BufferedLineReader : public IBufferedLineReader { BufferedLineReader(AuSPtr reader) : inputStream_(reader) {}; virtual bool ReadBytes(AuUInt32 length) override; virtual AuList ReadLines() override; virtual void Flush() override; private: AuSPtr inputStream_; AuByteBuffer buffer_; bool flushLine_; AuThreadPrimitives::SpinLock lock_; }; }