/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IOPipeRequest.hpp Date: 2022-6-20 Author: Reece ***/ #pragma once namespace Aurora::IO { struct IIOPipeEventListener; struct IOPipeRequest { /** * @brief Amount of bytes to transfer or zero if run until EoS/EoF */ AuUInt32 lengthOrZero {}; /** * @brief true if the underlying stream uses relative stream positions * (IE: a network or pipe stream that cannot seek backwards and fowards) * (Inversely, file devices and similar IO subsystems use IO packets with absolute offsets) */ bool isStream {false}; /** * @brief internal frame size or zero if fallback */ AuUInt32 pageLengthOrZero {}; /** * @brief event listener */ AuSPtr listener; /** * @brief Used as the buffer size for streams of page length 0 */ AuUInt32 fallbackPageSize {4096 * 50}; }; }