/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IIOWaitableItem.hpp Date: 2022-6-6 Author: Reece ***/ #pragma once namespace Aurora::IO { // Unstable and hacky interface // You shouldn't try to implement this yourself // Defer to IIOWaitableIOLoopSource, IIOWaitableIOTimer, and IIOWaitableTickLimiter for intended impl usage AUKN_INTERFACE(IIOWaitableItem, AUI_METHOD(bool, IsRunOnTick, ()), AUI_METHOD(bool, IsRunOnOtherTick, ()), AUI_METHOD(bool, CanRequestTick, ()), AUI_METHOD(void, OnReportPumper, (const AuSPtr &, iface)), AUI_METHOD(bool, IsRunOnSelfIO, ()), AUI_METHOD(AuSPtr, GetSelfIOSource, ()), AUI_METHOD(AuUInt32, IOTimeoutInMS, ()), AUI_METHOD(bool, IsRunOnSelfIOCheckedOnTimerTick, ()), AUI_METHOD(bool, ApplyRateLimit, ()) ); }