// SPDX-FileCopyrightText: 2024 Yury Gubich // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include #include #include #include #include #include #include #include "logger.h" #include "config.h" #include "handlers/message.h" #include "handlers/connection.h" class Jay { public: Jay(const std::string& configPath); ~Jay(); bool isConfigValid() const; void run(); private: void addLogger(gloox::LogLevel level); void initialize(); void createClient(); private: std::mutex runMutex; std::shared_ptr config; std::shared_ptr client; std::unique_ptr messageHandler; std::unique_ptr connectionHandler; std::vector> loggers; };