AuroraRuntime/Include/Aurora/IO/IIOWaitableIOLoopSource.hpp

33 lines
1.1 KiB
C++

/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: IIOWatachableIOLoopSource.hpp
Date: 2022-6-6
Author: Reece
***/
#pragma once
namespace Aurora::IO
{
struct IIOWatachableIOLoopSource : IIOWaitableItem
{
virtual AuSPtr<Loop::ILoopSource> GetLoopSource() = 0;
virtual AuSPtr<Loop::ILoopSource> SetLoopSource(const AuSPtr<Loop::ILoopSource> &pLoopSource) = 0;
};
/**
* @brief Creates an adapter given an ILoopSource for the IO subsystem to wait on
* @param pLoopSource
* @return
*/
AUKN_SYM AuSPtr<IIOWatachableIOLoopSource> NewWaitableLoopSource(const AuSPtr<Loop::ILoopSource> &pLoopSource);
/**
* @brief Creates an adapter given an ILoopSource for the IO subsystem to wait on
* @param pLoopSource
* @param uMsTimeout
* @return
*/
AUKN_SYM AuSPtr<IIOWatachableIOLoopSource> NewWaitableLoopSourceEx(const AuSPtr<Loop::ILoopSource> &pLoopSource,
AuUInt32 uMsTimeout);
}