mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-15 09:31:45 +00:00
Move Bind/Connect/Attach to FairMQChannel
This commit is contained in:
committed by
Dennis Klein
parent
3ca0d7236a
commit
25fcf13985
@@ -32,8 +32,7 @@ namespace parser
|
||||
// function that convert property tree (given the json structure) to FairMQChannelMap
|
||||
FairMQChannelMap ptreeToMQMap(const boost::property_tree::ptree& pt, const string& id, const string& rootNode)
|
||||
{
|
||||
if (id == "")
|
||||
{
|
||||
if (id == "") {
|
||||
throw ParserError("no device ID provided. Provide with `--id` cmd option");
|
||||
}
|
||||
|
||||
@@ -44,8 +43,7 @@ FairMQChannelMap ptreeToMQMap(const boost::property_tree::ptree& pt, const strin
|
||||
// Extract value from boost::property_tree
|
||||
Helper::DeviceParser(pt.get_child(rootNode), channelMap, id);
|
||||
|
||||
if (channelMap.empty())
|
||||
{
|
||||
if (channelMap.empty()) {
|
||||
LOG(warn) << "---- No channel keys found for " << id;
|
||||
LOG(warn) << "---- Check the JSON inputs and/or command line inputs";
|
||||
}
|
||||
@@ -68,20 +66,14 @@ void PrintDeviceList(const boost::property_tree::ptree& tree)
|
||||
string deviceIdKey;
|
||||
|
||||
// do a first loop just to print the device-id in json input
|
||||
for (const auto& p : tree)
|
||||
{
|
||||
if (p.first == "devices")
|
||||
{
|
||||
for (const auto& q : p.second.get_child(""))
|
||||
{
|
||||
for (const auto& p : tree) {
|
||||
if (p.first == "devices") {
|
||||
for (const auto& q : p.second.get_child("")) {
|
||||
string key = q.second.get<string>("key", "");
|
||||
if (key != "")
|
||||
{
|
||||
if (key != "") {
|
||||
deviceIdKey = key;
|
||||
LOG(debug) << "Found config for device key '" << deviceIdKey << "' in JSON input";
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
deviceIdKey = q.second.get<string>("id");
|
||||
LOG(debug) << "Found config for device id '" << deviceIdKey << "' in JSON input";
|
||||
}
|
||||
@@ -95,33 +87,26 @@ void DeviceParser(const boost::property_tree::ptree& tree, FairMQChannelMap& cha
|
||||
string deviceIdKey;
|
||||
|
||||
// For each node in fairMQOptions
|
||||
for (const auto& p : tree)
|
||||
{
|
||||
if (p.first == "devices")
|
||||
{
|
||||
for (const auto& q : p.second)
|
||||
{
|
||||
for (const auto& p : tree) {
|
||||
if (p.first == "devices") {
|
||||
for (const auto& q : p.second) {
|
||||
// check if key is provided, otherwise use id
|
||||
string key = q.second.get<string>("key", "");
|
||||
|
||||
if (key != "")
|
||||
{
|
||||
if (key != "") {
|
||||
deviceIdKey = key;
|
||||
// LOG(debug) << "Found config for device key '" << deviceIdKey << "' in JSON input";
|
||||
}
|
||||
else
|
||||
{
|
||||
// LOG(trace) << "Found config for device key '" << deviceIdKey << "' in JSON input";
|
||||
} else {
|
||||
deviceIdKey = q.second.get<string>("id");
|
||||
// LOG(debug) << "Found config for device id '" << deviceIdKey << "' in JSON input";
|
||||
// LOG(trace) << "Found config for device id '" << deviceIdKey << "' in JSON input";
|
||||
}
|
||||
|
||||
// if not correct device id, do not fill MQMap
|
||||
if (deviceId != deviceIdKey)
|
||||
{
|
||||
if (deviceId != deviceIdKey) {
|
||||
continue;
|
||||
}
|
||||
|
||||
LOG(debug) << "Found following channels for device ID '" << deviceId << "' :";
|
||||
LOG(trace) << "Found following channels for device ID '" << deviceId << "' :";
|
||||
|
||||
ChannelParser(q.second, channelMap);
|
||||
}
|
||||
@@ -133,12 +118,9 @@ void ChannelParser(const boost::property_tree::ptree& tree, FairMQChannelMap& ch
|
||||
{
|
||||
string channelKey;
|
||||
|
||||
for (const auto& p : tree)
|
||||
{
|
||||
if (p.first == "channels")
|
||||
{
|
||||
for (const auto& q : p.second)
|
||||
{
|
||||
for (const auto& p : tree) {
|
||||
if (p.first == "channels") {
|
||||
for (const auto& q : p.second) {
|
||||
channelKey = q.second.get<string>("name");
|
||||
|
||||
int numSockets = q.second.get<int>("numSockets", 0);
|
||||
@@ -154,36 +136,37 @@ void ChannelParser(const boost::property_tree::ptree& tree, FairMQChannelMap& ch
|
||||
commonChannel.UpdateSndKernelSize(q.second.get<int>("sndKernelSize", commonChannel.GetSndKernelSize()));
|
||||
commonChannel.UpdateRcvKernelSize(q.second.get<int>("rcvKernelSize", commonChannel.GetRcvKernelSize()));
|
||||
commonChannel.UpdateLinger(q.second.get<int>("linger", commonChannel.GetLinger()));
|
||||
commonChannel.UpdateRateLogging(q.second.get<int>("rateLogging", commonChannel.GetRateLogging()));
|
||||
commonChannel.UpdatePortRangeMin(q.second.get<int>("portRangeMin", commonChannel.GetPortRangeMin()));
|
||||
commonChannel.UpdatePortRangeMax(q.second.get<int>("portRangeMax", commonChannel.GetPortRangeMax()));
|
||||
commonChannel.UpdateAutoBind(q.second.get<bool>("autoBind", commonChannel.GetAutoBind()));
|
||||
|
||||
// temporary FairMQChannel container
|
||||
vector<FairMQChannel> channelList;
|
||||
|
||||
if (numSockets > 0)
|
||||
{
|
||||
LOG(debug) << "" << channelKey << ":";
|
||||
LOG(debug) << "\tnumSockets of " << numSockets << " specified,";
|
||||
LOG(debug) << "\tapplying common settings to each:";
|
||||
if (numSockets > 0) {
|
||||
LOG(trace) << "" << channelKey << ":";
|
||||
LOG(trace) << "\tnumSockets of " << numSockets << " specified,";
|
||||
LOG(trace) << "\tapplying common settings to each:";
|
||||
|
||||
LOG(debug) << "\ttype = " << commonChannel.GetType();
|
||||
LOG(debug) << "\tmethod = " << commonChannel.GetMethod();
|
||||
LOG(debug) << "\taddress = " << commonChannel.GetAddress();
|
||||
LOG(debug) << "\ttransport = " << commonChannel.GetTransportName();
|
||||
LOG(debug) << "\tsndBufSize = " << commonChannel.GetSndBufSize();
|
||||
LOG(debug) << "\trcvBufSize = " << commonChannel.GetRcvBufSize();
|
||||
LOG(debug) << "\tsndKernelSize = " << commonChannel.GetSndKernelSize();
|
||||
LOG(debug) << "\trcvKernelSize = " << commonChannel.GetRcvKernelSize();
|
||||
LOG(debug) << "\tlinger = " << commonChannel.GetLinger();
|
||||
LOG(debug) << "\trateLogging = " << commonChannel.GetRateLogging();
|
||||
LOG(trace) << "\ttype = " << commonChannel.GetType();
|
||||
LOG(trace) << "\tmethod = " << commonChannel.GetMethod();
|
||||
LOG(trace) << "\taddress = " << commonChannel.GetAddress();
|
||||
LOG(trace) << "\ttransport = " << commonChannel.GetTransportName();
|
||||
LOG(trace) << "\tsndBufSize = " << commonChannel.GetSndBufSize();
|
||||
LOG(trace) << "\trcvBufSize = " << commonChannel.GetRcvBufSize();
|
||||
LOG(trace) << "\tsndKernelSize = " << commonChannel.GetSndKernelSize();
|
||||
LOG(trace) << "\trcvKernelSize = " << commonChannel.GetRcvKernelSize();
|
||||
LOG(trace) << "\tlinger = " << commonChannel.GetLinger();
|
||||
LOG(trace) << "\trateLogging = " << commonChannel.GetRateLogging();
|
||||
LOG(trace) << "\tportRangeMin = " << commonChannel.GetPortRangeMin();
|
||||
LOG(trace) << "\tportRangeMax = " << commonChannel.GetPortRangeMax();
|
||||
LOG(trace) << "\tautoBind = " << commonChannel.GetAutoBind();
|
||||
|
||||
for (int i = 0; i < numSockets; ++i)
|
||||
{
|
||||
for (int i = 0; i < numSockets; ++i) {
|
||||
FairMQChannel channel(commonChannel);
|
||||
channelList.push_back(channel);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
SocketParser(q.second.get_child(""), channelList, channelKey, commonChannel);
|
||||
}
|
||||
|
||||
@@ -198,12 +181,9 @@ void SocketParser(const boost::property_tree::ptree& tree, vector<FairMQChannel>
|
||||
// for each socket in channel
|
||||
int socketCounter = 0;
|
||||
|
||||
for (const auto& p : tree)
|
||||
{
|
||||
if (p.first == "sockets")
|
||||
{
|
||||
for (const auto& q : p.second)
|
||||
{
|
||||
for (const auto& p : tree) {
|
||||
if (p.first == "sockets") {
|
||||
for (const auto& q : p.second) {
|
||||
// create new channel and apply setting from the common channel
|
||||
FairMQChannel channel(commonChannel);
|
||||
|
||||
@@ -218,18 +198,24 @@ void SocketParser(const boost::property_tree::ptree& tree, vector<FairMQChannel>
|
||||
channel.UpdateRcvKernelSize(q.second.get<int>("rcvKernelSize", channel.GetRcvKernelSize()));
|
||||
channel.UpdateLinger(q.second.get<int>("linger", channel.GetLinger()));
|
||||
channel.UpdateRateLogging(q.second.get<int>("rateLogging", channel.GetRateLogging()));
|
||||
channel.UpdatePortRangeMin(q.second.get<int>("portRangeMin", channel.GetPortRangeMin()));
|
||||
channel.UpdatePortRangeMax(q.second.get<int>("portRangeMax", channel.GetPortRangeMax()));
|
||||
channel.UpdateAutoBind(q.second.get<bool>("autoBind", channel.GetAutoBind()));
|
||||
|
||||
LOG(debug) << "" << channelName << "[" << socketCounter << "]:";
|
||||
LOG(debug) << "\ttype = " << channel.GetType();
|
||||
LOG(debug) << "\tmethod = " << channel.GetMethod();
|
||||
LOG(debug) << "\taddress = " << channel.GetAddress();
|
||||
LOG(debug) << "\ttransport = " << channel.GetTransportName();
|
||||
LOG(debug) << "\tsndBufSize = " << channel.GetSndBufSize();
|
||||
LOG(debug) << "\trcvBufSize = " << channel.GetRcvBufSize();
|
||||
LOG(debug) << "\tsndKernelSize = " << channel.GetSndKernelSize();
|
||||
LOG(debug) << "\trcvKernelSize = " << channel.GetRcvKernelSize();
|
||||
LOG(debug) << "\tlinger = " << channel.GetLinger();
|
||||
LOG(debug) << "\trateLogging = " << channel.GetRateLogging();
|
||||
LOG(trace) << "" << channelName << "[" << socketCounter << "]:";
|
||||
LOG(trace) << "\ttype = " << channel.GetType();
|
||||
LOG(trace) << "\tmethod = " << channel.GetMethod();
|
||||
LOG(trace) << "\taddress = " << channel.GetAddress();
|
||||
LOG(trace) << "\ttransport = " << channel.GetTransportName();
|
||||
LOG(trace) << "\tsndBufSize = " << channel.GetSndBufSize();
|
||||
LOG(trace) << "\trcvBufSize = " << channel.GetRcvBufSize();
|
||||
LOG(trace) << "\tsndKernelSize = " << channel.GetSndKernelSize();
|
||||
LOG(trace) << "\trcvKernelSize = " << channel.GetRcvKernelSize();
|
||||
LOG(trace) << "\tlinger = " << channel.GetLinger();
|
||||
LOG(trace) << "\trateLogging = " << channel.GetRateLogging();
|
||||
LOG(trace) << "\tportRangeMin = " << channel.GetPortRangeMin();
|
||||
LOG(trace) << "\tportRangeMax = " << channel.GetPortRangeMax();
|
||||
LOG(trace) << "\tautoBind = " << channel.GetAutoBind();
|
||||
|
||||
channelList.push_back(channel);
|
||||
++socketCounter;
|
||||
@@ -237,28 +223,28 @@ void SocketParser(const boost::property_tree::ptree& tree, vector<FairMQChannel>
|
||||
}
|
||||
} // end socket loop
|
||||
|
||||
if (socketCounter)
|
||||
{
|
||||
LOG(debug) << "Found " << socketCounter << " socket(s) in channel.";
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG(debug) << "" << channelName << ":";
|
||||
LOG(debug) << "\tNo sockets specified,";
|
||||
LOG(debug) << "\tapplying common settings to the channel:";
|
||||
if (socketCounter) {
|
||||
LOG(trace) << "Found " << socketCounter << " socket(s) in channel.";
|
||||
} else {
|
||||
LOG(trace) << "" << channelName << ":";
|
||||
LOG(trace) << "\tNo sockets specified,";
|
||||
LOG(trace) << "\tapplying common settings to the channel:";
|
||||
|
||||
FairMQChannel channel(commonChannel);
|
||||
|
||||
LOG(debug) << "\ttype = " << channel.GetType();
|
||||
LOG(debug) << "\tmethod = " << channel.GetMethod();
|
||||
LOG(debug) << "\taddress = " << channel.GetAddress();
|
||||
LOG(debug) << "\ttransport = " << channel.GetTransportName();
|
||||
LOG(debug) << "\tsndBufSize = " << channel.GetSndBufSize();
|
||||
LOG(debug) << "\trcvBufSize = " << channel.GetRcvBufSize();
|
||||
LOG(debug) << "\tsndKernelSize = " << channel.GetSndKernelSize();
|
||||
LOG(debug) << "\trcvKernelSize = " << channel.GetRcvKernelSize();
|
||||
LOG(debug) << "\tlinger = " << channel.GetLinger();
|
||||
LOG(debug) << "\trateLogging = " << channel.GetRateLogging();
|
||||
LOG(trace) << "\ttype = " << channel.GetType();
|
||||
LOG(trace) << "\tmethod = " << channel.GetMethod();
|
||||
LOG(trace) << "\taddress = " << channel.GetAddress();
|
||||
LOG(trace) << "\ttransport = " << channel.GetTransportName();
|
||||
LOG(trace) << "\tsndBufSize = " << channel.GetSndBufSize();
|
||||
LOG(trace) << "\trcvBufSize = " << channel.GetRcvBufSize();
|
||||
LOG(trace) << "\tsndKernelSize = " << channel.GetSndKernelSize();
|
||||
LOG(trace) << "\trcvKernelSize = " << channel.GetRcvKernelSize();
|
||||
LOG(trace) << "\tlinger = " << channel.GetLinger();
|
||||
LOG(trace) << "\trateLogging = " << channel.GetRateLogging();
|
||||
LOG(trace) << "\tportRangeMin = " << channel.GetPortRangeMin();
|
||||
LOG(trace) << "\tportRangeMax = " << channel.GetPortRangeMax();
|
||||
LOG(trace) << "\tautoBind = " << channel.GetAutoBind();
|
||||
|
||||
channelList.push_back(channel);
|
||||
}
|
||||
|
Reference in New Issue
Block a user