AuroraRuntime/Source/Loop/WaitSingleBase.hpp
J Reece Wilson 6de5cbfb95 [+] Linux: Added bSingleshot API to timerfd backend
[*] NT: Added TTY handle static getter optimization alongside a secret setter API
[*] Made ILoopSource virtual
[+] Linux: Added console TTY stubs
[*] Renamed ConsoleTTY.Linux.cpp -> ConsoleTTY.Unix.cpp
[-] Redundant commented out shm_unlink (zero ref condition should unlink, i believe.)
[+] Added IProcess async pipe transaction getter stubs
[+] Added additional userland env lookup variables: XDG_SESSION_DESKTOP, DESKTOP_SESSION
[+] Unix: AuTime::ns2ts
2022-05-04 16:43:23 +01:00

38 lines
943 B
C++

/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: WaitSingle.Generic.hpp
Date: 2021-10-2
Author: Reece
***/
#pragma once
#include "ILoopSourceEx.hpp"
namespace Aurora::Loop
{
#if defined(AURORA_IS_POSIX_DERIVED)
#define _OPT_WRITE , AuUInt write
#define _OPT_WRITE_REF , AuUInt &write
#else
#define _OPT_WRITE
#define _OPT_WRITE_REF
#endif
#if defined(AURORA_IS_POSIX_DERIVED)
#define _OPT_WRITE_ARRAY , const AuList<AuUInt> &handlesWrite
#else
#define _OPT_WRITE_ARRAY
#endif
struct WaitSingleBase : virtual ILoopSourceEx
{
virtual bool IsSignaled() override;
virtual bool WaitOn(AuUInt32 timeout) override;
virtual bool WaitForAtleastOne(AuUInt32 timeout, const AuList<AuUInt> &handles _OPT_WRITE_ARRAY, AuUInt &one _OPT_WRITE_REF) = 0;
virtual bool WaitForOne(AuUInt32 timeout, AuUInt handle _OPT_WRITE) = 0;
};
}