1 #ifndef ARTDAQ_DAQDATA_HOSTMAP_HH
2 #define ARTDAQ_DAQDATA_HOSTMAP_HH
8 #include "fhiclcpp/ParameterSet.h"
9 #include "fhiclcpp/types/Atom.h"
10 #include "fhiclcpp/types/Comment.h"
11 #include "fhiclcpp/types/Sequence.h"
12 #include "fhiclcpp/types/Table.h"
14 #include "TRACE/trace.h"
26 fhicl::Atom<int>
rank{fhicl::Name{
"rank"}, fhicl::Comment{
"Rank index"}};
28 fhicl::Atom<std::string>
host{fhicl::Name{
"host"}, fhicl::Comment{
"Hostname for artdaq application with this rank"}};
38 fhicl::Sequence<fhicl::Table<HostConfig>>
host_map{fhicl::Name(
"host_map"), fhicl::Comment(
"List of artdaq applications by rank and location")};
49 inline std::vector<fhicl::ParameterSet>
MakeHostMapPset(std::map<int, std::string> input)
51 std::vector<fhicl::ParameterSet> output;
52 for (
auto& rank : input)
54 fhicl::ParameterSet rank_output;
55 rank_output.put<
int>(
"rank", rank.first);
56 rank_output.put<std::string>(
"host", rank.second);
57 output.push_back(rank_output);
70 if (pset.has_key(
"host_map"))
72 auto hosts = pset.get<std::vector<fhicl::ParameterSet>>(
"host_map");
73 for (
auto& ps : hosts)
75 auto rank = ps.get<
int>(
"rank");
76 auto hostname = ps.get<std::string>(
"host");
78 if (map.count(rank) && (map[rank] != hostname))
80 TLOG(TLVL_ERROR) <<
"Inconsistent host maps supplied! Check configuration! There may be TCPSocket-related failures!";
89 #endif // ARTDAQ_DAQDATA_HOSTMAP_HH
fhicl::Sequence< fhicl::Table< HostConfig > > host_map
List of artdaq applications by rank and location. See artdaq::HostMap::HostConfig ...
fhicl::Atom< int > rank
"rank": Rank index
std::vector< fhicl::ParameterSet > MakeHostMapPset(std::map< int, std::string > input)
Create a list of HostMap::HostConfig ParameterSets from a hostMap_t map
Template for the host_map configuration parameter.
fhicl::Atom< std::string > host
"host": Hostname for artdaq application with this rank
Entries in the host_map should have these parameters. May be used for parameter validation ...
std::map< int, std::string > hostMap_t
The host_map is a map associating ranks with artdaq::DestinationInfo objects.
hostMap_t MakeHostMap(fhicl::ParameterSet const &pset, hostMap_t map=hostMap_t())
Make a hostMap_t from a HostMap::Config ParameterSet