/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IOWaitableIOLoopSource.cpp Date: 2022-6-6 Author: Reece ***/ #include #include #include "IOWaitableIOLoopSource.hpp" namespace Aurora::IO { IOWatachableIOLoopSource::IOWatachableIOLoopSource(const AuSPtr &source) : source(source) { } IOWatachableIOLoopSource::IOWatachableIOLoopSource(const AuSPtr& source, AuUInt32 ioTimeoutMS) : source(source), ioTimeoutMS(ioTimeoutMS) { } bool IOWatachableIOLoopSource::IsRunOnOtherTick() { return {}; } bool IOWatachableIOLoopSource::IsRunOnTick() { return {}; } bool IOWatachableIOLoopSource::CanRequestTick() { return {}; } void IOWatachableIOLoopSource::OnReportPumper(const AuSPtr &iface) { } bool IOWatachableIOLoopSource::IsRunOnSelfIO() { return true; } AuSPtr IOWatachableIOLoopSource::GetSelfIOSource() { return GetLoopSource(); } bool IOWatachableIOLoopSource::ApplyRateLimit() { return {}; } AuSPtr IOWatachableIOLoopSource::GetLoopSource() { return this->source; } AuSPtr IOWatachableIOLoopSource::SetLoopSource(const AuSPtr &ls) { return AuExchange(this->source, ls); } bool IOWatachableIOLoopSource::IsRunOnSelfIOCheckedOnTimerTick() { return true; } AuUInt32 IOWatachableIOLoopSource::IOTimeoutInMS() { return this->ioTimeoutMS; } AUKN_SYM AuSPtr NewWaitableLoopSource(const AuSPtr& ptr) { return AuMakeShared(ptr); } AUKN_SYM AuSPtr NewWaitableLoopSourceEx(const AuSPtr& ptr, AuUInt32 msTimeout) { return AuMakeShared(ptr, msTimeout); } }