private DurationDataSet GetOrAddStationTimeSet(VehicleStationLocation station) { if (!_stationTimes.TryGetValue(station, out DurationDataSet result)) { result = new DurationDataSet(1); _stationTimes.Add(station, result); } return(result); }
protected virtual void DoRead(StateBinaryReader reader, VehicleSchedule schedule) { int count = reader.ReadInt(); for (int i = 0; i < count; i++) { int taskIndex = reader.ReadInt(); RootTask task = schedule.GetTasks()[taskIndex]; _data.Add(task, DurationDataSet.Read(reader)); } }
private DurationDataSet GetOrAddTravelTimeSet(VehicleStationLocation start, VehicleStationLocation end, List <VehicleStationLocation> nonstopList) { int?hashCode = GetLocationsHashCode(nonstopList); if (!_travelTimes.TryGetValue((start, end, hashCode), out DurationDataSet travelTime)) { travelTime = new DurationDataSet(1); _travelTimes.Add((start, end, hashCode), travelTime); } return(travelTime); }
internal static DurationDataSet Read(StateBinaryReader reader) { DurationDataSet result = new DurationDataSet(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { TimeSpan span = new TimeSpan(reader.ReadLong()); result._durationData.Put(span); result._runningSum += span; } result._totalCount = reader.ReadInt(); result._totalSum = new TimeSpan(reader.ReadLong()); return(result); }
/** add times from scheduleData to the existing data for averaging */ public void AddTimes(VehicleScheduleData scheduleData) { foreach ((RootTask endStationTask, VehicleStationLocation startStation, VehicleStationLocation endStation, List <VehicleStationLocation> nonstopStations) in scheduleData.GetNonNonstopScheduleParts()) { TimeSpan?duration = scheduleData.GetAverageTravelDuration(endStationTask); if (duration != null) { DurationDataSet travelTime = GetOrAddTravelTimeSet(startStation, endStation, nonstopStations); travelTime.Add(duration.Value); } TimeSpan?stationDuration = scheduleData.GetAverageStationLoadingDuration(endStationTask); if (stationDuration != null) { DurationDataSet stationTimeSet = GetOrAddStationTimeSet(endStation); stationTimeSet.Add(stationDuration.Value); } } }
public void Add(RootTask task, TimeSpan duration) { DurationDataSet dataSet = GetOrCreateDataSetForTask(task); dataSet.Add(duration); }