// SPDX-FileCopyrightText: 2024 Yury Gubich // SPDX-License-Identifier: GPL-3.0-or-later #pragma once #include #include #include #include "actor.h" #include "module/module.h" class Router { public: Router(); void registerModule(const std::string& key, const std::shared_ptr& module); void registerActor(const std::string& key, const std::string& group); void routeMessage(const std::string& sender, const std::string& body); private: typedef std::map> Modules; typedef std::map Actors; Modules modules; Actors actors; std::string defaultGroup; };