using System; using System.Collections.Generic; namespace UnityEditor.Performance.ProfileAnalyzer { [Serializable] internal class ThreadSelection { public List groups; public List selection; public bool empty { get { return groups == null || selection == null || groups.Count == 0 && selection.Count == 0; } } public ThreadSelection() { groups = new List(); selection = new List(); } public ThreadSelection(ThreadSelection threadSelection) { groups = new List(); selection = new List(); Set(threadSelection); } public void SetAll() { groups.Clear(); selection.Clear(); ThreadIdentifier allThreadSelection = new ThreadIdentifier("All", ThreadIdentifier.kAll); groups.Add(allThreadSelection.threadNameWithIndex); } public void Set(string name) { groups.Clear(); selection.Clear(); selection.Add(name); } public void SetGroup(string groupName) { groups.Clear(); selection.Clear(); ThreadIdentifier allThreadSelection = new ThreadIdentifier(groupName, ThreadIdentifier.kAll); groups.Add(allThreadSelection.threadNameWithIndex); } public void Set(ThreadSelection threadSelection) { groups.Clear(); selection.Clear(); if (threadSelection.groups != null) groups.AddRange(threadSelection.groups); if (threadSelection.selection != null) selection.AddRange(threadSelection.selection); } } }