/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: SysLog.Unix.hpp Date: 2022-8-2 Author: Reece ***/ #pragma once namespace Aurora::Logging::Sinks { struct SysLogSink : IBasicSink { SysLogSink(const AuString &value); ~SysLogSink(); void OnMessageBlocking(AuUInt8 level, const ConsoleMessage &msg) override; bool OnMessageNonblocking(AuUInt8 level, const ConsoleMessage &msg) override; void OnFlush() override; private: void FlushStrings(); AuUInt sysCurrentType_; AuString sysStrBuffer_; AuList> sysCompleteLineBuffer_; AuThreadPrimitives::SpinLock spinLock_; }; void NewOSNamedEventDirectorySinkRelease(IBasicSink *sink); IBasicSink *NewOSNamedEventDirectorySinkNew(const AuString &name); }