45 lines
985 B
C++
45 lines
985 B
C++
#pragma once
|
|
|
|
#include "ddkit/actors/ActorInfo.hpp"
|
|
|
|
#include <string>
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
|
|
namespace ddkit {
|
|
namespace actors {
|
|
|
|
class SessionImpl;
|
|
typedef std::shared_ptr<SessionImpl> SessionImplPtr;
|
|
|
|
/// @brief Typically there should be only one Session per domain.
|
|
class Session final {
|
|
|
|
public:
|
|
Session(int domain);
|
|
~Session();
|
|
|
|
std::string sessionId();
|
|
|
|
std::vector<ServiceInfo> findServices(const std::string& module);
|
|
std::vector<ClientInfo> findClients(const std::string& module);
|
|
std::vector<ClientInfo> 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
|