Exemple #1
0
 public LoadMetricStorage(LoadMetricStorage metricStorage) : this()
 {
     foreach (LoadMetric metric in metricStorage.Metrics)
     {
         this[metric] = metricStorage[metric];
     }
 }
Exemple #2
0
        public static LoadMetricStorage operator -(LoadMetricStorage left, LoadMetricStorage right)
        {
            LoadMetricStorage result = new LoadMetricStorage();

            foreach (LoadMetric metric in left.values.Keys)
            {
                result[metric] = left[metric];
            }
            foreach (LoadMetric metric2 in from key in right.values.Keys
                     where result.values.ContainsKey(key)
                     select key)
            {
                result[metric2] -= right[metric2];
            }
            return(result);
        }
Exemple #3
0
        public static LoadMetricStorage operator +(LoadMetricStorage left, LoadMetricStorage right)
        {
            AnchorUtil.ThrowOnNullArgument(left, "left");
            AnchorUtil.ThrowOnNullArgument(right, "right");
            LoadMetricStorage loadMetricStorage = new LoadMetricStorage();

            foreach (LoadMetric metric in left.values.Keys)
            {
                loadMetricStorage[metric] = left[metric];
            }
            foreach (LoadMetric metric2 in right.values.Keys)
            {
                loadMetricStorage[metric2] += right[metric2];
            }
            return(loadMetricStorage);
        }
Exemple #4
0
 public bool SupportsAdditional(LoadMetricStorage incomingLoad, out LoadMetric exceededMetric, out long requestedUnits, out long availableUnits)
 {
     AnchorUtil.ThrowOnNullArgument(incomingLoad, "incomingLoad");
     exceededMetric = null;
     requestedUnits = 0L;
     availableUnits = 0L;
     foreach (LoadMetric loadMetric in this.values.Keys)
     {
         if (this[loadMetric] < incomingLoad[loadMetric] || this[loadMetric] == 0L)
         {
             exceededMetric = loadMetric;
             availableUnits = this[loadMetric];
             requestedUnits = incomingLoad[loadMetric];
             return(false);
         }
     }
     return(true);
 }