/** * Copy logs from the input workspace to the output workspace * and replace any matching logs with the ones from the input workspace. */ void CopyLogs::mergeReplaceExisting(const std::vector< Kernel::Property* >& inputLogs, Run& outputRun) { for(auto iter = inputLogs.begin(); iter != inputLogs.end(); ++iter) { Kernel::Property* prop = *iter; //if the log exists, remove and replace it if ( outputRun.hasProperty(prop->name()) ) { outputRun.removeLogData(prop->name()); } outputRun.addLogData(prop->clone()); } }
/** * Copy logs from the input workspace to the output workspace * and don't replace any mathcing logs in the output workspace. */ void CopyLogs::mergeKeepExisting( const std::vector<Kernel::Property *> &inputLogs, Run &outputRun) { for (auto iter = inputLogs.begin(); iter != inputLogs.end(); ++iter) { Kernel::Property *prop = *iter; // add the log only if it doesn't already exist if (!outputRun.hasProperty(prop->name())) { outputRun.addLogData(prop->clone()); } } }