/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IIOPipeProcessor.hpp Date: 2022-6-6 Author: Reece ***/ #pragma once namespace Aurora::IO { /** * @brief Different operating systems implement high level stream copy abstraction between network, file, and/or file descriptors. * This interface connects arbitrary stream objects to one another by piping data under an iprocessor tick; or delegates * such task to the operating system, if possible. */ struct IIOPipeProcessor { /** * @brief * @param request * @return */ virtual AuSPtr NewBasicPipe(const IOPipeRequestBasic &request) = 0; /** * @brief * @param request * @return */ virtual AuSPtr NewAIOPipe(const IOPipeRequestAIO &request) = 0; }; }