AuroraRuntime/Include/Aurora/Console/Console.hpp
Reece e5e36bd887 Large Commit
[*] Fix deadlock in the async subsystem (NoLockShutdown vs Shutdown in exception handler)
[+] Added ProccessMap NT variant
[+] Added ToolHelp image profiling
[*] Improved exception awareness
[*] Delegated SpawnThread to isolated TU, ready for reuse for RunAs and XNU Open - now with horrible evil alloc that could fail
[+] Added header for future api 'UtilRun'
[*] Improve NT core detection
[*] Changed small affinity bitmap to AuUInt64 instead of AuUInt32
[+] Added data structure to hold cpuids/affinity masks
[+] Implemented logger sinks
[+] Implemented logger glue logic
[*] Began migrating older loggers to sink-based default devices
[*] Minor refactors
[*] Improved internal exception discarding, not yet nothrow capable
[*] Minor create directory fix
2022-01-24 18:43:53 +00:00

43 lines
1.2 KiB
C++

/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Console.hpp
Date: 2021-6-9
Author: Reece
***/
#pragma once
#include "EAnsiColor.hpp"
#include "ConsoleMessage.hpp"
namespace Aurora::Console
{
namespace Logging
{
struct ILogger;
}
/// Writes a log message to the console subscribers and telemetry outputs
AUKN_SYM void WriteLine(AuUInt8 level, const ConsoleMessage &msg);
AUKN_SYM void SetGlobalLogger(const AuSPtr<Logging::ILogger> &defaultGlobalLogger);
AUKN_SYM AuSPtr<Logging::ILogger> GetDefaultLogInterface();
/// Consider using the following function for asynchronous utf-8 processed line based input -
/// Hooks::SetCallbackAndDisableCmdProcessing(...)
AUKN_SYM AuUInt32 ReadStdIn(void *buffer, AuUInt32 length);
/// Consider using AuLog for general purpose use
AUKN_SYM AuUInt32 WriteStdOut(const void *buffer, AuUInt32 length);
/**
* Simulates a processed stdin line given a UTF8 string
*/
AUKN_SYM bool DispatchRawLine(const AuString &string);
AUKN_SYM void OpenLateStd();
AUKN_SYM void OpenLateGUI();
}
#include "Commands/Commands.hpp"
#include "Hooks/Hooks.hpp"
#include "Logging/Logging.hpp"