AuroraRuntime/Include/Aurora/IO/IIOWaitableItem.hpp

31 lines
941 B
C++

/***
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<IIOProcessorManualInvoker> &, iface)),
AUI_METHOD(bool, IsRunOnSelfIO, ()),
AUI_METHOD(AuSPtr<Loop::ILoopSource>, GetSelfIOSource, ()),
AUI_METHOD(AuUInt32, IOTimeoutInMS, ()),
AUI_METHOD(bool, IsRunOnSelfIOCheckedOnTimerTick, ()),
AUI_METHOD(bool, ApplyRateLimit, ())
);
}