mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 16:46:47 +00:00
SDK: Fix CTopology member init and remove separate init step again
This commit is contained in:
parent
de4fca177e
commit
bc98ab1eed
|
@ -13,6 +13,7 @@
|
||||||
#include <fairmq/sdk/DDSInfo.h>
|
#include <fairmq/sdk/DDSInfo.h>
|
||||||
#include <fairmq/sdk/DDSEnvironment.h>
|
#include <fairmq/sdk/DDSEnvironment.h>
|
||||||
#include <fairmq/sdk/DDSSession.h>
|
#include <fairmq/sdk/DDSSession.h>
|
||||||
|
#include <fairmq/sdk/DDSTopology.h>
|
||||||
#include <fairmq/sdk/Topology.h>
|
#include <fairmq/sdk/Topology.h>
|
||||||
// IWYU pragma: end_exports
|
// IWYU pragma: end_exports
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,8 @@
|
||||||
|
|
||||||
#include "DDSTopology.h"
|
#include "DDSTopology.h"
|
||||||
|
|
||||||
|
#include <boost/range/iterator_range.hpp>
|
||||||
|
|
||||||
#include <fairmq/sdk/DDSEnvironment.h>
|
#include <fairmq/sdk/DDSEnvironment.h>
|
||||||
#include <fairmq/Tools.h>
|
#include <fairmq/Tools.h>
|
||||||
|
|
||||||
|
@ -29,14 +31,12 @@ struct DDSTopology::Impl
|
||||||
explicit Impl(Path topoFile, DDSEnvironment env)
|
explicit Impl(Path topoFile, DDSEnvironment env)
|
||||||
: fEnv(std::move(env))
|
: fEnv(std::move(env))
|
||||||
, fTopoFile(std::move(topoFile))
|
, fTopoFile(std::move(topoFile))
|
||||||
, fTopo(nullptr)
|
, fTopo(fTopoFile.string())
|
||||||
{
|
{}
|
||||||
LOG(warn) << topoFile;
|
|
||||||
}
|
|
||||||
|
|
||||||
DDSEnvironment fEnv;
|
DDSEnvironment fEnv;
|
||||||
Path fTopoFile;
|
Path fTopoFile;
|
||||||
std::unique_ptr<dds::topology_api::CTopology> fTopo;
|
dds::topology_api::CTopology fTopo;
|
||||||
};
|
};
|
||||||
|
|
||||||
DDSTopology::DDSTopology(Path topoFile, DDSEnvironment env)
|
DDSTopology::DDSTopology(Path topoFile, DDSEnvironment env)
|
||||||
|
@ -54,20 +54,15 @@ auto DDSTopology::GetTopoFile() const -> Path
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DDSTopology::CreateTopology(Path topoFile)
|
|
||||||
{
|
|
||||||
fImpl->fTopo = tools::make_unique<dds::topology_api::CTopology>(fImpl->fTopoFile.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
int DDSTopology::GetNumRequiredAgents()
|
int DDSTopology::GetNumRequiredAgents()
|
||||||
{
|
{
|
||||||
return fImpl->fTopo->getRequiredNofAgents();
|
return fImpl->fTopo.getRequiredNofAgents();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<uint64_t> DDSTopology::GetDeviceList()
|
std::vector<uint64_t> DDSTopology::GetDeviceList()
|
||||||
{
|
{
|
||||||
std::vector<uint64_t> taskIDs;
|
std::vector<uint64_t> taskIDs;
|
||||||
taskIDs.reserve(fImpl->fTopo->getRequiredNofAgents());
|
taskIDs.reserve(GetNumRequiredAgents());
|
||||||
|
|
||||||
// TODO make sure returned tasks are actually devices
|
// TODO make sure returned tasks are actually devices
|
||||||
dds::topology_api::STopoRuntimeTask::FilterIteratorPair_t taskIt = fImpl->fTopo->getRuntimeTaskIterator([](const dds::topology_api::STopoRuntimeTask::FilterIterator_t::value_type& value) -> bool {
|
dds::topology_api::STopoRuntimeTask::FilterIteratorPair_t taskIt = fImpl->fTopo->getRuntimeTaskIterator([](const dds::topology_api::STopoRuntimeTask::FilterIterator_t::value_type& value) -> bool {
|
||||||
|
|
|
@ -41,8 +41,6 @@ class DDSTopology
|
||||||
/// @throw std::runtime_error
|
/// @throw std::runtime_error
|
||||||
auto GetTopoFile() const -> Path;
|
auto GetTopoFile() const -> Path;
|
||||||
|
|
||||||
void CreateTopology(Path);
|
|
||||||
|
|
||||||
/// @brief Get number of required agents for this topology
|
/// @brief Get number of required agents for this topology
|
||||||
int GetNumRequiredAgents();
|
int GetNumRequiredAgents();
|
||||||
|
|
||||||
|
|
|
@ -61,8 +61,6 @@ Topology::Topology(DDSTopology topo, DDSSession session)
|
||||||
, fExecutionThread()
|
, fExecutionThread()
|
||||||
, fShutdown(false)
|
, fShutdown(false)
|
||||||
{
|
{
|
||||||
fDDSTopo.CreateTopology(fDDSTopo.GetTopoFile());
|
|
||||||
|
|
||||||
std::vector<uint64_t> deviceList = fDDSTopo.GetDeviceList();
|
std::vector<uint64_t> deviceList = fDDSTopo.GetDeviceList();
|
||||||
for (const auto& d : deviceList) {
|
for (const auto& d : deviceList) {
|
||||||
LOG(info) << "fair::mq::Topology Adding device " << d;
|
LOG(info) << "fair::mq::Topology Adding device " << d;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user