Skip to content
Extraits de code Groupes Projets

Theme system

Fusionnées Kubat a demandé de fusionner theme vers log-macros
4 fichiers
+ 83
23
Comparer les modifications
  • Côte à côte
  • En ligne
Fichiers
4
+ 56
10
@@ -5,6 +5,39 @@ using namespace Vivy;
LogSink::~LogSink() noexcept {}
LogMessage::~LogMessage() noexcept { parentLogger->sendLogMessage(*this); }
const chrono::milliseconds
LogMessage::getTimeStamp() const noexcept
{
return timeStamp;
}
LogMessage::Header const &
LogMessage::getHeader() const noexcept
{
return messageHeader;
}
const std::string_view
LogMessage::getTextBuffer() const noexcept
{
const char *txt = textBuffer.data();
return std::string_view{ txt, strlen(txt) };
}
void
Logger::sendLogMessage(const LogMessage &msg) const noexcept
{
parentLogSink->recieveLogMessage(this, msg);
}
// Get the log message from the logger and add it to the sink's queue.
void
LogSink::recieveLogMessage(const Logger *const logger, LogMessage const &msg) noexcept
{
const std::lock_guard<std::mutex> messageQueueLockGuard(messageQueueLock);
messageQueue.emplace_back(msg);
}
std::shared_ptr<LogSink>
LogSink::newSink() noexcept
{
@@ -45,11 +78,6 @@ Logger::logEvent(const char *fileName, const char *functionName, const int lineN
.lineNumberInFile = lineNumber });
}
void
Logger::sendLogMessage(const LogMessage &msg) const noexcept {
TODO(Write the code to send the event...)
}
LogMessage::LogMessage(Logger *const logger, const LogMessage::Header hdr) noexcept
: messageHeader(hdr)
, parentLogger(logger)
@@ -57,19 +85,37 @@ LogMessage::LogMessage(Logger *const logger, const LogMessage::Header hdr) noexc
}
LogMessage &
LogMessage::operator<<(const std::string &) noexcept
LogMessage::operator<<(const std::string &msg) noexcept
{
return *this;
return (*this << msg.c_str());
}
LogMessage &
LogMessage::operator<<(const int) noexcept
LogMessage::operator<<(const QString &msg) noexcept
{
return *this;
return (*this << msg.toStdString());
}
LogMessage &
LogMessage::operator<<(const int i) noexcept
{
return (*this << static_cast<long>(i));
}
LogMessage &
LogMessage::operator<<(const long i) noexcept
{
return (*this << std::to_string(i));
}
LogMessage &
LogMessage::operator<<(const long) noexcept
LogMessage::operator<<(const char *str) noexcept
{
const std::size_t length = strlen(str);
for (std::size_t i = 0; (i < length) && (indexInArray < messageBufferLength - 1);
++i, ++indexInArray) {
textBuffer[indexInArray] = str[i];
}
textBuffer[indexInArray] = '\0';
return *this;
}
Chargement en cours