#pragma once #include "ddkit/actors/ActorInfo.hpp" #include #include #include namespace ddkit { namespace actors { class SessionImpl; typedef std::shared_ptr SessionImplPtr; /// @brief Typically there should be only one Session per domain. class Session final { public: Session(int domain); ~Session(); std::string sessionId(); std::vector findServices(const std::string& module); std::vector findClients(const std::string& module); std::vector findClients(const std::string& serviceName, const std::string& module); private: friend class SessionImpl; SessionImplPtr m_sessionImpl; SessionImpl& sessionImpl(); Session() = delete; // no copying Session(Session const&) = delete; Session(Session&&) = delete; void operator=(Session const&) = delete; void operator=(Session&&) = delete; }; } // namespace actors } // namespace ddkit