AuroraRuntime/Include/Aurora/Console/ConsoleMessage.hpp

55 lines
1.4 KiB
C++

/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: ConsoleMessage.hpp
Date: 2021-6-10
Author: Reece
***/
#pragma once
namespace Aurora::Threading::Threads
{
AUKN_SYM AuThreadId_t GetThreadId();
}
namespace Aurora::Time
{
AUKN_SYM AuUInt64 CurrentClockMS();
}
namespace Aurora::Console
{
class ConsoleMessage
{
public:
EAnsiColor color;
AuString prefix;
AuString line;
AuUInt64 time;
AuThreadId_t tid;
inline ConsoleMessage()
{
color = EAnsiColor::eReset;
tid = 0;
time = 0;
}
inline ConsoleMessage(const AuString &prefix, const AuString &line) : prefix(prefix), line(line), color(EAnsiColor::eReset)
{
time = Time::CurrentClockMS();
tid = Threading::Threads::GetThreadId();
}
inline ConsoleMessage(const EAnsiColor color, const AuString &prefix, const AuString &line) : prefix(prefix), line(line), color(color)
{
time = Time::CurrentClockMS();
tid = Threading::Threads::GetThreadId();
}
AUKN_SYM AuString StringifyTime(bool simple = false) const;
AUKN_SYM AuString GetWrappedTag() const;
AUKN_SYM AuString ToConsole() const;
AUKN_SYM AuString ToSimplified() const;
};
}