// SPDX-FileCopyrightText: 2024 Yury Gubich // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include #include #include #include #include #include #include #include "component/logger.h" #include "component/config.h" #include "component/router.h" #include "handler/message.h" #include "handler/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(); void createActors(); private: std::mutex runMutex; std::shared_ptr config; std::unique_ptr router; std::shared_ptr client; std::unique_ptr messageHandler; std::unique_ptr connectionHandler; std::vector> loggers; };