LinuxCommunicator/Monitoring/MonitoringConfig.cs (24 lines of code) (raw):

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Hpc.Monitoring; namespace Microsoft.Hpc.Communicators.LinuxCommunicator.Monitoring { public class MonitoringConfig { public IEnumerable<MetricDefinition> MetricDefinitions { get; private set; } public bool UpdateWhenChanged(IEnumerable<MetricDefinition> metricDefinitions) { if (this.MetricDefinitions == null || !this.MetricDefinitions.SequenceEqual( metricDefinitions, GenericEqualityComparer<MetricDefinition>.CreateComparer((a, b) => a.ValueEquals(b), a => a.GetHashCode()))) { this.MetricDefinitions = metricDefinitions; return true; } return false; } } }