/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IIOWatachableIOLoopSource.hpp Date: 2022-6-6 Author: Reece ***/ #pragma once namespace Aurora::IO { struct IIOWatachableIOLoopSource : IIOWaitableItem { virtual AuSPtr GetLoopSource() = 0; virtual AuSPtr SetLoopSource(const AuSPtr &pLoopSource) = 0; }; /** * @brief Creates an adapter given an ILoopSource for the IO subsystem to wait on * @param pLoopSource * @return */ AUKN_SYM AuSPtr NewWaitableLoopSource(const AuSPtr &pLoopSource); /** * @brief Creates an adapter given an ILoopSource for the IO subsystem to wait on * @param pLoopSource * @param uMsTimeout * @return */ AUKN_SYM AuSPtr NewWaitableLoopSourceEx(const AuSPtr &pLoopSource, AuUInt32 uMsTimeout); }