diff --git a/fairmq/sdk/CMakeLists.txt b/fairmq/sdk/CMakeLists.txt index f79e100e..0cc31cd3 100644 --- a/fairmq/sdk/CMakeLists.txt +++ b/fairmq/sdk/CMakeLists.txt @@ -48,12 +48,12 @@ target_link_libraries(${target} Boost::filesystem FairLogger::FairLogger StateMachine - DDS::dds_topology_lib # TODO Eventually hide this in the future PRIVATE Boost::boost DDS::dds_intercom_lib DDS::dds_tools_lib + DDS::dds_topology_lib Tools ) set_target_properties(${target} PROPERTIES diff --git a/fairmq/sdk/DDSSession.cxx b/fairmq/sdk/DDSSession.cxx index 6110602e..67bb119e 100644 --- a/fairmq/sdk/DDSSession.cxx +++ b/fairmq/sdk/DDSSession.cxx @@ -7,6 +7,7 @@ ********************************************************************************/ #include "DDSSession.h" +#include "DDSEnvironment.h" #include #include @@ -157,7 +158,6 @@ auto DDSSession::ActivateTopology(Path topologyFile) -> void dds::tools_api::STopologyRequestData topologyInfo; topologyInfo.m_updateType = dds::tools_api::STopologyRequestData::EUpdateType::ACTIVATE; topologyInfo.m_topologyFile = topologyFile.string(); - LOG(warn) << topologyFile.string() << " :::: " << topologyFile; tools::Semaphore blocker; auto topologyRequest = dds::tools_api::STopologyRequest::makeRequest(topologyInfo); diff --git a/fairmq/sdk/DDSSession.h b/fairmq/sdk/DDSSession.h index f82f6053..4265c434 100644 --- a/fairmq/sdk/DDSSession.h +++ b/fairmq/sdk/DDSSession.h @@ -11,7 +11,6 @@ #include #include -#include #include #include #include @@ -23,6 +22,8 @@ namespace fair { namespace mq { namespace sdk { +class DDSEnvironment; + /** * @enum DDSRMSPlugin DDSSession.h * @brief Supported DDS resource management system plugins diff --git a/fairmq/sdk/Topology.cxx b/fairmq/sdk/Topology.cxx index 2b22d327..b4a2a56b 100644 --- a/fairmq/sdk/Topology.cxx +++ b/fairmq/sdk/Topology.cxx @@ -8,14 +8,24 @@ #include "Topology.h" +#include #include namespace fair { namespace mq { namespace sdk { +struct Topology::Impl +{ + Impl(dds::topology_api::CTopology topo) + : fDDSTopology(std::move(topo)) + {} + + dds::topology_api::CTopology fDDSTopology; +}; + Topology::Topology(dds::topology_api::CTopology topo) - : fDDSTopology(std::move(topo)) + : fImpl(std::make_shared(std::move(topo))) {} } // namespace sdk diff --git a/fairmq/sdk/Topology.h b/fairmq/sdk/Topology.h index e6ed2bed..5cfdd344 100644 --- a/fairmq/sdk/Topology.h +++ b/fairmq/sdk/Topology.h @@ -9,8 +9,20 @@ #ifndef FAIR_MQ_SDK_TOPOLOGY_H #define FAIR_MQ_SDK_TOPOLOGY_H -#include +#include +#include #include +#include +#include +#include + +namespace dds { +namespace topology_api { + +class CTopology; + +} // namespace topology_api +} // namespace dds namespace fair { namespace mq { @@ -24,12 +36,13 @@ class Topology { public: - /// Construct a FairMQ topology from an existing DDS session via the dds::topology_api + /// @brief Construct a FairMQ topology from an existing DDS session via the dds::topology_api /// @param topo An initialized CTopology object explicit Topology(dds::topology_api::CTopology topo); private: - dds::topology_api::CTopology fDDSTopology; + struct Impl; + std::shared_ptr fImpl; }; } // namespace sdk