Skip to content

Commit

Permalink
DPL: refactor internal details of ResourcesMonitoringHelper
Browse files Browse the repository at this point in the history
No need to expose getter / setters to the outside.
  • Loading branch information
ktf committed Dec 14, 2020
1 parent 46995d6 commit 00d2046
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 34 deletions.
32 changes: 32 additions & 0 deletions Framework/Core/src/ResourcesMonitoringHelper.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,38 @@

using namespace o2::framework;

template <typename T>
inline static T retriveValue(T val)
{
return val;
}

inline static std::string retriveValue(const std::reference_wrapper<const StringMetric> val)
{
return std::string(val.get().data);
}

template <typename T>
boost::property_tree::ptree fillNodeWithValue(const DeviceMetricsInfo& deviceMetrics,
const T& metricsStorage, size_t labelIndex, size_t storageIndex)
{

unsigned int loopRange = std::min(deviceMetrics.metrics[labelIndex].filledMetrics, metricsStorage[storageIndex].size());
boost::property_tree::ptree metricNode;

for (unsigned int idx = 0; idx < loopRange; ++idx) {
boost::property_tree::ptree values;
values.add("timestamp", deviceMetrics.timestamps[labelIndex][idx]);
if constexpr (std::is_arithmetic_v<T>) {
values.add("value", std::to_string(retriveValue(std::cref(metricsStorage[storageIndex][idx]))));
} else {
values.add("value", retriveValue(std::cref(metricsStorage[storageIndex][idx])));
}
metricNode.push_back(std::make_pair("", values));
}
return metricNode;
}

bool ResourcesMonitoringHelper::dumpMetricsToJSON(const std::vector<DeviceMetricsInfo>& metrics,
const DeviceMetricsInfo& driverMetrics,
const std::vector<DeviceSpec>& specs,
Expand Down
34 changes: 0 additions & 34 deletions Framework/Core/src/ResourcesMonitoringHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,42 +30,8 @@ struct ResourcesMonitoringHelper {
std::vector<DeviceSpec> const& specs,
std::vector<std::string> const& metricsToDump) noexcept;
static bool isResourcesMonitoringEnabled(unsigned short interval) noexcept { return interval > 0; }

template <typename T>
static boost::property_tree::ptree fillNodeWithValue(const DeviceMetricsInfo& deviceMetrics,
const T& metricsStorage, size_t labelIndex, size_t storageIndex);

template <typename T>
inline static T retriveValue(T val)
{
return val;
}
inline static std::string retriveValue(const std::reference_wrapper<const StringMetric> val)
{
return std::string(val.get().data);
}
};

template <typename T>
boost::property_tree::ptree ResourcesMonitoringHelper::fillNodeWithValue(const DeviceMetricsInfo& deviceMetrics,
const T& metricsStorage, size_t labelIndex, size_t storageIndex)
{

unsigned int loopRange = std::min(deviceMetrics.metrics[labelIndex].filledMetrics, metricsStorage[storageIndex].size());
boost::property_tree::ptree metricNode;

for (unsigned int idx = 0; idx < loopRange; ++idx) {
boost::property_tree::ptree values;
values.add("timestamp", deviceMetrics.timestamps[labelIndex][idx]);
if constexpr (std::is_arithmetic_v<T>) {
values.add("value", std::to_string(retriveValue(std::cref(metricsStorage[storageIndex][idx]))));
} else {
values.add("value", retriveValue(std::cref(metricsStorage[storageIndex][idx])));
}
metricNode.push_back(std::make_pair("", values));
}
return metricNode;
}

} // namespace o2::framework

Expand Down

0 comments on commit 00d2046

Please sign in to comment.