1 instantiation of PlanConfigData
Microsoft.Build (1)
BackEnd\Components\Scheduler\SchedulingPlan.cs (1)
415
PlanConfigData data = new
PlanConfigData
(configId, configFullPath, accumulatedTime);
50 references to PlanConfigData
Microsoft.Build (50)
BackEnd\Components\Scheduler\Scheduler.cs (4)
934
private void AssignUnscheduledRequestsWithPlan(List<ScheduleResponse> responses, HashSet<int> idleNodes, Func<SchedulingPlan.
PlanConfigData
, SchedulingPlan.
PlanConfigData
, bool> comparisonFunction)
938
SchedulingPlan.
PlanConfigData
bestConfig = null;
946
SchedulingPlan.
PlanConfigData
configToConsider = _schedulingPlan.GetConfiguration(request.BuildRequest.ConfigurationId);
BackEnd\Components\Scheduler\SchedulingPlan.cs (46)
37
private Dictionary<string,
PlanConfigData
> _configPathToData = new Dictionary<string,
PlanConfigData
>();
42
private Dictionary<int,
PlanConfigData
> _configIdToData = new Dictionary<int,
PlanConfigData
>();
47
private Dictionary<int, List<Stack<
PlanConfigData
>>> _configIdToPaths = new Dictionary<int, List<Stack<
PlanConfigData
>>>();
59
public
PlanConfigData
GetConfiguration(int configId)
61
_configPathToData.TryGetValue(_configCache[configId].ProjectFullPath, out
PlanConfigData
data);
192
PlanConfigData
config;
236
List<KeyValuePair<int,
PlanConfigData
>> projectsInOrderOfTotalPlanTime = new(_configIdToData);
238
foreach (KeyValuePair<int,
PlanConfigData
> configuration in projectsInOrderOfTotalPlanTime)
240
PlanConfigData
config = configuration.Value;
242
foreach (
PlanConfigData
referrer in config.Referrers)
259
List<KeyValuePair<int,
PlanConfigData
>> projectsInOrderOfImmediateChildCount = new(_configIdToData);
261
foreach (KeyValuePair<int,
PlanConfigData
> configuration in projectsInOrderOfImmediateChildCount)
290
Stack<
PlanConfigData
> currentPath = new Stack<
PlanConfigData
>();
291
PlanConfigData
root = _configIdToData[1];
298
private void RecursiveVisitNodes(
PlanConfigData
root, Stack<
PlanConfigData
> currentPath)
301
List<Stack<
PlanConfigData
>> pathsForConfig;
304
pathsForConfig = new List<Stack<
PlanConfigData
>>();
309
Stack<
PlanConfigData
> pathToAdd = new Stack<
PlanConfigData
>(currentPath);
318
foreach (
PlanConfigData
child in root.References)
334
List<
PlanConfigData
> projectsByExpense = new List<
PlanConfigData
>(_configIdToData.Values);
337
projectsByExpense.Sort(delegate (
PlanConfigData
left,
PlanConfigData
right) { return -Comparer<double>.Default.Compare(left.AccumulatedTime, right.AccumulatedTime); });
339
foreach (
PlanConfigData
config in projectsByExpense)
342
List<Stack<
PlanConfigData
>> pathsByLength = _configIdToPaths[config.ConfigId];
345
pathsByLength.Sort(delegate (Stack<
PlanConfigData
> left, Stack<
PlanConfigData
> right) { return Comparer<int>.Default.Compare(left.Count, right.Count); });
346
foreach (Stack<
PlanConfigData
> path in pathsByLength)
349
foreach (
PlanConfigData
pathEntry in path)
381
PlanConfigData
parent = _configIdToData[configId];
386
PlanConfigData
child = _configIdToData[childId];
415
PlanConfigData
data = new PlanConfigData(configId, configFullPath, accumulatedTime);
504
private HashSet<
PlanConfigData
> _references = new HashSet<
PlanConfigData
>();
509
private HashSet<
PlanConfigData
> _referrers = new HashSet<
PlanConfigData
>();
575
public IEnumerable<
PlanConfigData
> References
591
public IEnumerable<
PlanConfigData
> Referrers
599
public void AddReference(
PlanConfigData
reference)
621
foreach (
PlanConfigData
referrer in _referrers)