public void EndSimulation() { if (_sentReport) return; PEQAggregateInfoReport report = new PEQAggregateInfoReport(1); report._numSearches = _numSearches; Notify(report); _sentReport = true; }
public IInfoReport Subtract(IInfoReport targetFromThisObject) { // Probably will be unused for this report type. if (targetFromThisObject is PEQAggregateInfoReport) { int newID; double newTimestamp; ILocation newLocation; bool sameNode = false; if (targetFromThisObject.ID == _id) { sameNode = true; newID = _id; newLocation = _location; } else { sameNode = false; newID = int.MaxValue; newLocation = null; } if (targetFromThisObject.Time > _timestamp) newTimestamp = targetFromThisObject.Time; else newTimestamp = _timestamp; PEQAggregateInfoReport target = (PEQAggregateInfoReport)targetFromThisObject; PEQAggregateInfoReport output = new PEQAggregateInfoReport(newTimestamp, _key, _label); output._location = newLocation; output._numSearches = this._numSearches - target._numSearches; return output; } else return null; }
/* / \ * // | \\ * / | \ * | */ public IInfoReport Add(IInfoReport withTarget) { if (withTarget is PEQAggregateInfoReport) { int newID; double newTimestamp; ILocation newLocation; bool sameNode; if (withTarget.ID == _id) { sameNode = true; newID = _id; newLocation = _location; } else { sameNode = false; newID = int.MaxValue; newLocation = null; } if (withTarget.Time > _timestamp) newTimestamp = withTarget.Time; else newTimestamp = _timestamp; PEQAggregateInfoReport target = (PEQAggregateInfoReport)withTarget; PEQAggregateInfoReport output = new PEQAggregateInfoReport(newTimestamp, _key, _label); output._location = newLocation; output._numSearches = this._numSearches + target._numSearches; return output; } else return null; }