// SPDX-FileCopyrightText: 2024 Yury Gubich // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include #include "shared/logger.h" #include "config.h" #include "router.h" class Connection; class Core { public: Core(const std::string& configPath); void send(const std::string& jid, const std::string& body); void initialize(const std::shared_ptr& connection); void setGroup(const std::string& jid, const std::string& group); void publish(const std::string& service, const std::string& node, const std::string& title, const std::string& body); public: Config config; Shared::Logger logger; Router router; private: void initializeActors(); void initializeResponses(); private: bool initialized; std::weak_ptr connection; };