SDK: Do not always stop the session on destruction

This commit is contained in:
Dennis Klein 2019-07-19 20:54:44 +02:00 committed by Dennis Klein
parent 7aa95fcd93
commit 5a7bf68c8c
3 changed files with 7 additions and 6 deletions

View File

@ -76,10 +76,6 @@ struct DDSSession::Impl
} }
} }
~Impl()
{
fSession.shutdown();
}
struct Tag {}; struct Tag {};
friend auto operator<<(std::ostream& os, Tag) -> std::ostream& { return os << "DDSSession"; } friend auto operator<<(std::ostream& os, Tag) -> std::ostream& { return os << "DDSSession"; }
tools::InstanceLimiter<Tag, 1> fCount; tools::InstanceLimiter<Tag, 1> fCount;
@ -103,6 +99,8 @@ auto DDSSession::IsRunning() const -> bool { return fImpl->fSession.IsRunning();
auto DDSSession::GetId() const -> Id { return fImpl->fId; } auto DDSSession::GetId() const -> Id { return fImpl->fId; }
auto DDSSession::Stop() -> void { return fImpl->fSession.shutdown(); }
auto DDSSession::GetDefaultPlugin() const -> DDSRMSPlugin { return fImpl->fDefaultPlugin; } auto DDSSession::GetDefaultPlugin() const -> DDSRMSPlugin { return fImpl->fDefaultPlugin; }
auto DDSSession::SubmitAgents(Quantity agents) -> void auto DDSSession::SubmitAgents(Quantity agents) -> void

View File

@ -61,6 +61,7 @@ class DDSSession
auto SubmitAgents(Quantity agents, const Path& config) -> void; auto SubmitAgents(Quantity agents, const Path& config) -> void;
auto RequestAgentInfo() -> void; auto RequestAgentInfo() -> void;
auto ActivateTopology(Path topologyFile) -> void; auto ActivateTopology(Path topologyFile) -> void;
auto Stop() -> void;
friend auto operator<<(std::ostream& os, DDSSession session) -> std::ostream&; friend auto operator<<(std::ostream& os, DDSSession session) -> std::ostream&;
private: private:

View File

@ -61,11 +61,13 @@ struct TopologyFixture : ::testing::Test
LOG(info) << mDDSEnv; LOG(info) << mDDSEnv;
LOG(info) << mDDSSession; LOG(info) << mDDSSession;
mDDSSession.SubmitAgents(2); mDDSSession.SubmitAgents(2);
std::this_thread::sleep_for(std::chrono::seconds(1)); std::this_thread::sleep_for(std::chrono::seconds(1)); // TODO implement WaitForIdleAgents
mDDSSession.ActivateTopology(mDDSTopologyFile); mDDSSession.ActivateTopology(mDDSTopologyFile);
} }
auto TearDown() -> void override {} auto TearDown() -> void override {
mDDSSession.Stop();
}
LoggerConfig mLoggerConfig; LoggerConfig mLoggerConfig;
std::string mDDSTopologyFile; std::string mDDSTopologyFile;