/*** Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IBasicSink.hpp Date: 2021-11-1 Author: Reece ***/ #pragma once namespace Aurora::Logging { AUKN_INTERFACE(IBasicSink, // async callback AUI_METHOD(void, OnMessageBlocking, (AuUInt8, level, const ConsoleMessage &, msg)), // sync callback // returns true if async aware, that is, OnMessageBlocking will be scheduled AUI_METHOD(bool, OnMessageNonblocking, (AuUInt8, level, const ConsoleMessage &, msg)), // called every configurable MS or during a problematic event warrenting flush // expect onflush to be called once after a series of OnMessageNonblocking and every N milliseconds (^1) AUI_METHOD(void, OnFlush, ()) ) }