Index: visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/ProcessSearcher.cs |
diff --git a/visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/ProcessSearcher.cs b/visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/ProcessSearcher.cs |
index ceb3b0dab1660332b39dad7e3497eb7e8ff831db..3657553ab10117bc2ec14cf797439b980562d173 100644 |
--- a/visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/ProcessSearcher.cs |
+++ b/visual_studio/NativeClientVSAddIn/NativeClientVSAddIn/ProcessSearcher.cs |
@@ -1,96 +1,96 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-namespace NativeClientVSAddIn |
-{ |
- using System; |
- using System.Collections.Generic; |
- using System.Linq; |
- using System.Management; |
- |
- /// <summary> |
- /// Queries the system for the list of running processes. |
- /// </summary> |
- public class ProcessSearcher |
- { |
- /// <summary> |
- /// Returns results of a process search subject to given constraints. |
- /// </summary> |
- /// <param name="constraints"> |
- /// A function taking a ProcessInfo object and returning true if the |
- /// ProcessInfo object satisfies the constraints. |
- /// </param> |
- /// <returns>List of matching processes.</returns> |
- public List<ProcessInfo> GetResults(Func<ProcessInfo, bool> constraints) |
- { |
- return GetSystemProcesses().Where(constraints).ToList(); |
- } |
- |
- /// <summary> |
- /// Searches the system for all processes of a given name. |
- /// </summary> |
- /// <param name="name">Name to search for.</param> |
- /// <returns>List of matching processes.</returns> |
- public List<ProcessInfo> GetResultsByName(string name) |
- { |
- return GetResults(p => name.Equals(p.Name, StringComparison.OrdinalIgnoreCase)); |
- } |
- |
- /// <summary> |
- /// Searches the system for all processes of a given process ID. |
- /// </summary> |
- /// <param name="procID">ID to search for.</param> |
- /// <returns>List of matching processes.</returns> |
- public List<ProcessInfo> GetResultsByID(uint procID) |
- { |
- return GetResults(p => procID == p.ID); |
- } |
- |
- /// <summary> |
- /// Returns a list of all descendant processes of a process. |
- /// </summary> |
- /// <param name="root">Process ID of the process to get all descendants from.</param> |
- /// <returns>All descendants of the given root process.</returns> |
- public List<ProcessInfo> GetDescendants(uint root) |
- { |
- List<ProcessInfo> processes = GetSystemProcesses(); |
- HashSet<ProcessInfo> descendants = new HashSet<ProcessInfo>(); |
- descendants.UnionWith(processes.Where(p => p.ID == root)); |
- int lastCount = 0; |
- while (descendants.Count > lastCount) |
- { |
- lastCount = descendants.Count; |
- |
- // Add any processes who have a parent that is in the descendant list already. |
- // Note we check the creation date to prevent cycles caused by recycled process IDs. |
- descendants.UnionWith(processes.Where(p => descendants.Any( |
- parent => parent.ID == p.ParentID && parent.CreationDate <= p.CreationDate))); |
- } |
- |
- return descendants.ToList(); |
- } |
- |
- /// <summary> |
- /// Queries the system for the full list of processes. |
- /// </summary> |
- /// <returns>List of processes on the system.</returns> |
- protected virtual List<ProcessInfo> GetSystemProcesses() |
- { |
- var processList = new List<ProcessInfo>(); |
- string query = "select * from Win32_Process"; |
- using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query)) |
- { |
- using (ManagementObjectCollection results = searcher.Get()) |
- { |
- foreach (ManagementObject process in results) |
- { |
- processList.Add((ProcessInfo)process); |
- } |
- } |
- } |
- |
- return processList; |
- } |
- } |
-} |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+namespace NativeClientVSAddIn |
+{ |
+ using System; |
+ using System.Collections.Generic; |
+ using System.Linq; |
+ using System.Management; |
+ |
+ /// <summary> |
+ /// Queries the system for the list of running processes. |
+ /// </summary> |
+ public class ProcessSearcher |
+ { |
+ /// <summary> |
+ /// Returns results of a process search subject to given constraints. |
+ /// </summary> |
+ /// <param name="constraints"> |
+ /// A function taking a ProcessInfo object and returning true if the |
+ /// ProcessInfo object satisfies the constraints. |
+ /// </param> |
+ /// <returns>List of matching processes.</returns> |
+ public List<ProcessInfo> GetResults(Func<ProcessInfo, bool> constraints) |
+ { |
+ return GetSystemProcesses().Where(constraints).ToList(); |
+ } |
+ |
+ /// <summary> |
+ /// Searches the system for all processes of a given name. |
+ /// </summary> |
+ /// <param name="name">Name to search for.</param> |
+ /// <returns>List of matching processes.</returns> |
+ public List<ProcessInfo> GetResultsByName(string name) |
+ { |
+ return GetResults(p => name.Equals(p.Name, StringComparison.OrdinalIgnoreCase)); |
+ } |
+ |
+ /// <summary> |
+ /// Searches the system for all processes of a given process ID. |
+ /// </summary> |
+ /// <param name="procID">ID to search for.</param> |
+ /// <returns>List of matching processes.</returns> |
+ public List<ProcessInfo> GetResultsByID(uint procID) |
+ { |
+ return GetResults(p => procID == p.ID); |
+ } |
+ |
+ /// <summary> |
+ /// Returns a list of all descendant processes of a process. |
+ /// </summary> |
+ /// <param name="root">Process ID of the process to get all descendants from.</param> |
+ /// <returns>All descendants of the given root process.</returns> |
+ public List<ProcessInfo> GetDescendants(uint root) |
+ { |
+ List<ProcessInfo> processes = GetSystemProcesses(); |
+ HashSet<ProcessInfo> descendants = new HashSet<ProcessInfo>(); |
+ descendants.UnionWith(processes.Where(p => p.ID == root)); |
+ int lastCount = 0; |
+ while (descendants.Count > lastCount) |
+ { |
+ lastCount = descendants.Count; |
+ |
+ // Add any processes who have a parent that is in the descendant list already. |
+ // Note we check the creation date to prevent cycles caused by recycled process IDs. |
+ descendants.UnionWith(processes.Where(p => descendants.Any( |
+ parent => parent.ID == p.ParentID && parent.CreationDate <= p.CreationDate))); |
+ } |
+ |
+ return descendants.ToList(); |
+ } |
+ |
+ /// <summary> |
+ /// Queries the system for the full list of processes. |
+ /// </summary> |
+ /// <returns>List of processes on the system.</returns> |
+ protected virtual List<ProcessInfo> GetSystemProcesses() |
+ { |
+ var processList = new List<ProcessInfo>(); |
+ string query = "select * from Win32_Process"; |
+ using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query)) |
+ { |
+ using (ManagementObjectCollection results = searcher.Get()) |
+ { |
+ foreach (ManagementObject process in results) |
+ { |
+ processList.Add((ProcessInfo)process); |
+ } |
+ } |
+ } |
+ |
+ return processList; |
+ } |
+ } |
+} |