/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuIOProcessorItem.hpp Date: 2022-6-6 Author: Reece ***/ #pragma once namespace Aurora::IO { struct IOProcessor; struct IOProcessorItem : AuLoop::ILoopSourceSubscriberEx, IIOProcessorItem, AuEnableSharedFromThis { IOProcessor *pParent {}; bool bSingleshot {}; bool bTriggered {}; AuSPtr pItem; AuSPtr pListener; // ILoopSourceSubscriber bool OnFinished(const AuSPtr &source, AuUInt8 pos) override; void OnTimeout(const AuSPtr& source) override; // IIOProcessorItem virtual bool StopWatch() override; virtual bool FailWatch() override; // IIOProcessorItem::... void InvokeManualTick() override; // void IOAlert(bool force); void Finalize(); }; }