Moved to boost logging

This commit is contained in:
Blue 2025-05-04 20:07:11 +03:00
parent a1ec9f731d
commit 58020fb3ba
Signed by: blue
GPG key ID: 9B203B252A63EE38
27 changed files with 531 additions and 294 deletions

View file

@ -12,8 +12,8 @@
#include "shared/definitions.h"
Loop::Loop(const Shared::Logger& logger):
Shared::Loggable(logger, {"Loop"}),
Loop::Loop(const Log::Logger& logger):
Log::Loggable(logger, {"Loop"}),
wakePipe(),
handlers(),
handlersToAdd(),
@ -80,16 +80,15 @@ void Loop::stop() {
debug("stopping the loop");
wake();
}
void Loop::addDescriptor(int descriptor, const Callback& handler) {
void Loop::addDescriptor(int descriptor, Callback&& handler) {
std::lock_guard lock(mutex);
if (handlers.count(descriptor) != 0) {
if (handlers.contains(descriptor)) {
warn("an attempt to add descriptor " + std::to_string(descriptor) + " for the second time");
return;
}
if (!handlersToAdd.emplace(descriptor, handler).second) {
if (!handlersToAdd.emplace(descriptor, std::forward<Callback>(handler)).second) {
warn("an attempt to add descriptor " + std::to_string(descriptor) + " for the second time");
return;
}
@ -116,13 +115,13 @@ void Loop::removeDescriptor(int descriptor) {
wake();
}
void Loop::wake() {
void Loop::wake() const {
char w = 'w';
if (write(wakePipe[1], &w, 1) < 0 && errno != EAGAIN)
error("failed to wake up event loop: " + std::string(strerror(errno)));
}
void Loop::drain(fd_set* readfds) {
void Loop::drain(fd_set* readfds) const {
if (!FD_ISSET(wakePipe[0], readfds))
return;
@ -145,7 +144,7 @@ void Loop::drain(fd_set* readfds) {
}
}
void Loop::runCallbacks(fd_set* readfds) {
void Loop::runCallbacks(fd_set* readfds) const {
for (const std::pair<const int, Callback>& pair : handlers) {
if (!FD_ISSET(pair.first, readfds))
continue;
@ -160,7 +159,7 @@ void Loop::runCallbacks(fd_set* readfds) {
}
}
int Loop::setFDsAndFindMax(fd_set* readfds) {
int Loop::setFDsAndFindMax(fd_set* readfds) const {
FD_ZERO(readfds);
FD_SET(wakePipe[0], readfds);
@ -188,7 +187,7 @@ void Loop::syncHandlers() {
void Loop::registerInstance(Loop* loop) {
std::lock_guard lock(instanceMutex);
if (instances.size() == 0) {
if (instances.empty()) {
std::signal(SIGINT, signalHandler);
std::signal(SIGTERM, signalHandler);
}
@ -200,7 +199,7 @@ void Loop::unregisterInstance(Loop* loop) {
std::lock_guard lock(instanceMutex);
instances.erase(loop);
if (instances.size() == 0) {
if (instances.empty()) {
std::signal(SIGINT, SIG_DFL);
std::signal(SIGTERM, SIG_DFL);
}