31 lines
941 B
C++
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, ())
|
|
);
|
|
} |