/** Write value from a RunInfo property (i.e., log) to a stream */ void writeLogValue(std::ostream &os, const Run &runinfo, const std::string &name, const std::string &defValue = "UNKNOWN") { // Return without property exists if (!runinfo.hasProperty(name)) { os << defValue; return; } // Get handler of property Kernel::Property *prop = runinfo.getProperty(name); // Return without a valid pointer to property if (prop == NULL) { os << defValue; return; } // Get value Kernel::TimeSeriesProperty<double> *log = dynamic_cast<Kernel::TimeSeriesProperty<double> *>(prop); if (log) { // Time series to get mean os << log->getStatistics().mean; } else { // None time series os << prop->value(); } // Unit std::string units = prop->units(); if (!units.empty()) os << " " << units; return; }