/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: LoopQueue.Linux.hpp Date: 2022-4-4 Author: Reece ***/ #pragma once #include "ILoopSourceEx.hpp" namespace Aurora::Loop { struct LoopQueue : ILoopQueue { LoopQueue(); ~LoopQueue(); bool SourceAdd(const AuSPtr &source) override; bool SourceAddWithTimeout(const AuSPtr &source, AuUInt32 ms) override; bool SourceRemove(const AuSPtr &source) override; AuUInt32 GetSourceCount() override; virtual bool AddCallback(const AuSPtr &source, const AuSPtr &subscriber) override; virtual bool AddCallbackEx(const AuSPtr &source, const AuSPtr &subscriber) override; virtual bool AddCallback(const AuSPtr &subscriber) override; void ChugPathConfigure(AuUInt32 sectionTickTime, AuSInt sectionDequeCount) override; void ChugHint(bool value) override; virtual bool Commit() override; bool IsSignaled() override; bool WaitAll(AuUInt32 timeout) override; AuUInt32 WaitAny(AuUInt32 timeout) override; AuList> WaitAnyEx(AuUInt32 timeout) override; private: }; }