AuroraRuntime/Source/IO/IOWaitableIOTimer.hpp
Reece Wilson 70418df761 [+] Added extended IO apis
> StartSimpleLSWatchEx
> StartSimpleIOWatchEx
> StartIOWatchEx
[*] Update README
2022-06-28 16:04:07 +01:00

39 lines
987 B
C++

/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: IOWaitableIOTimer.hpp
Date: 2022-6-6
Author: Reece
***/
#pragma once
namespace Aurora::IO
{
struct IOWaitableIOTimer : IIOWaitableIOTimer
{
IOWaitableIOTimer();
bool IsValid();
bool IsRunOnOtherTick() override;
bool IsRunOnTick() override;
bool CanRequestTick() override;
void OnReportPumper(const AuSPtr<IIOProcessorManualInvoker> &iface) override;
bool IsRunOnSelfIO() override;
AuSPtr<Loop::ILoopSource> GetSelfIOSource() override;
bool IsRunOnSelfIOCheckedOnTimerTick() override;
bool ApplyRateLimit() override;
AuUInt32 IOTimeoutInMS() override;
AuUInt64 SetConstantTick(AuUInt64 ns) override;
AuUInt64 SetTargetTimeAbs(AuUInt64 ns) override;
AuSPtr<Loop::ITimer> source;
AuUInt64 constantTickNs {};
AuUInt64 targetTimeAbsNs {};
};
}