/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IOWaitableIOLoopSource.hpp Date: 2022-6-6 Author: Reece ***/ #pragma once namespace Aurora::IO { struct IOWatachableIOLoopSource : IIOWatachableIOLoopSource { IOWatachableIOLoopSource(const AuSPtr &source); bool IsRunOnOtherTick() override; bool IsRunOnTick() override; bool CanRequestTick() override; void OnReportPumper(const AuSPtr &iface) override; bool IsRunOnSelfIO() override; AuSPtr GetSelfIOSource() override; bool ApplyRateLimit() override; AuSPtr GetLoopSource() override; AuSPtr SetLoopSource(const AuSPtr &ls) override; bool IsRunOnSelfIOCheckedOnTimerTick() override; AuSPtr source; }; }