/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IProtocolStack.hpp Date: 2022-9-29 Author: Reece ***/ #pragma once namespace Aurora::IO::Protocol { struct IProtocolPiece { /** * @brief Removes this piece from the stack */ virtual void Remove() = 0; /** * @brief Fetches an IStreamWriter representation of the next piece * in the stack * @return */ virtual AuSPtr ToNextWriter() = 0; /** * @brief * @warning returns self shared reference * @return */ virtual AuSPtr GetNextPieceBuffer() = 0; }; }