// 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/actor.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: typedef std::map> Actors; std::mutex runMutex; std::shared_ptr config; std::shared_ptr client; std::unique_ptr messageHandler; std::unique_ptr connectionHandler; std::vector> loggers; Actors actors; };