/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuIOWaitableIOLoopSource.cpp Date: 2022-6-6 Author: Reece ***/ #include #include #include "AuIOWaitableIOLoopSource.hpp" namespace Aurora::IO { IOWatachableIOLoopSource::IOWatachableIOLoopSource(const AuSPtr &pSource) : pSource(pSource) { } IOWatachableIOLoopSource::IOWatachableIOLoopSource(const AuSPtr&pSource, AuUInt32 dwIoTimeoutMS) : pSource(pSource), dwIoTimeoutMS(dwIoTimeoutMS) { } 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->pSource; } AuSPtr IOWatachableIOLoopSource::SetLoopSource(const AuSPtr &pSource) { return AuExchange(this->pSource, pSource); } bool IOWatachableIOLoopSource::IsRunOnSelfIOCheckedOnTimerTick() { return true; } AuUInt32 IOWatachableIOLoopSource::IOTimeoutInMS() { return this->dwIoTimeoutMS; } AUKN_SYM AuSPtr NewWaitableLoopSource(const AuSPtr&pSource) { SysCheckRetExpNotNullMemory(AuMakeShared(pSource), {}); } AUKN_SYM AuSPtr NewWaitableLoopSourceEx(const AuSPtr&pSource, AuUInt32 dwIoTimeoutMS) { SysCheckRetExpNotNullMemory(AuMakeShared(pSource, dwIoTimeoutMS), {}); } }