Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6555)

Unified Diff: base/process/process_iterator.h

Issue 1647803004: Move base to DEPS (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/process/process_info_win.cc ('k') | base/process/process_iterator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/process/process_iterator.h
diff --git a/base/process/process_iterator.h b/base/process/process_iterator.h
deleted file mode 100644
index ec6500e653cfbf2e6ff3240a9ea59857c7d1e64c..0000000000000000000000000000000000000000
--- a/base/process/process_iterator.h
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright (c) 2013 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.
-
-// This file contains methods to iterate over processes on the system.
-
-#ifndef BASE_PROCESS_PROCESS_ITERATOR_H_
-#define BASE_PROCESS_PROCESS_ITERATOR_H_
-
-#include <list>
-#include <string>
-#include <vector>
-
-#include "base/base_export.h"
-#include "base/basictypes.h"
-#include "base/files/file_path.h"
-#include "base/process/process.h"
-#include "build/build_config.h"
-
-#if defined(OS_WIN)
-#include <windows.h>
-#include <tlhelp32.h>
-#elif defined(OS_MACOSX) || defined(OS_OPENBSD)
-#include <sys/sysctl.h>
-#elif defined(OS_FREEBSD)
-#include <sys/user.h>
-#elif defined(OS_POSIX)
-#include <dirent.h>
-#endif
-
-namespace base {
-
-#if defined(OS_WIN)
-struct ProcessEntry : public PROCESSENTRY32 {
- ProcessId pid() const { return th32ProcessID; }
- ProcessId parent_pid() const { return th32ParentProcessID; }
- const wchar_t* exe_file() const { return szExeFile; }
-};
-#elif defined(OS_POSIX)
-struct BASE_EXPORT ProcessEntry {
- ProcessEntry();
- ~ProcessEntry();
-
- ProcessId pid() const { return pid_; }
- ProcessId parent_pid() const { return ppid_; }
- ProcessId gid() const { return gid_; }
- const char* exe_file() const { return exe_file_.c_str(); }
- const std::vector<std::string>& cmd_line_args() const {
- return cmd_line_args_;
- }
-
- ProcessId pid_;
- ProcessId ppid_;
- ProcessId gid_;
- std::string exe_file_;
- std::vector<std::string> cmd_line_args_;
-};
-#endif // defined(OS_POSIX)
-
-// Used to filter processes by process ID.
-class ProcessFilter {
- public:
- // Returns true to indicate set-inclusion and false otherwise. This method
- // should not have side-effects and should be idempotent.
- virtual bool Includes(const ProcessEntry& entry) const = 0;
-
- protected:
- virtual ~ProcessFilter() {}
-};
-
-// This class provides a way to iterate through a list of processes on the
-// current machine with a specified filter.
-// To use, create an instance and then call NextProcessEntry() until it returns
-// false.
-class BASE_EXPORT ProcessIterator {
- public:
- typedef std::list<ProcessEntry> ProcessEntries;
-
- explicit ProcessIterator(const ProcessFilter* filter);
- virtual ~ProcessIterator();
-
- // If there's another process that matches the given executable name,
- // returns a const pointer to the corresponding PROCESSENTRY32.
- // If there are no more matching processes, returns NULL.
- // The returned pointer will remain valid until NextProcessEntry()
- // is called again or this NamedProcessIterator goes out of scope.
- const ProcessEntry* NextProcessEntry();
-
- // Takes a snapshot of all the ProcessEntry found.
- ProcessEntries Snapshot();
-
- protected:
- virtual bool IncludeEntry();
- const ProcessEntry& entry() { return entry_; }
-
- private:
- // Determines whether there's another process (regardless of executable)
- // left in the list of all processes. Returns true and sets entry_ to
- // that process's info if there is one, false otherwise.
- bool CheckForNextProcess();
-
- // Initializes a PROCESSENTRY32 data structure so that it's ready for
- // use with Process32First/Process32Next.
- void InitProcessEntry(ProcessEntry* entry);
-
-#if defined(OS_WIN)
- HANDLE snapshot_;
- bool started_iteration_;
-#elif defined(OS_MACOSX) || defined(OS_BSD)
- std::vector<kinfo_proc> kinfo_procs_;
- size_t index_of_kinfo_proc_;
-#elif defined(OS_POSIX)
- DIR* procfs_dir_;
-#endif
- ProcessEntry entry_;
- const ProcessFilter* filter_;
-
- DISALLOW_COPY_AND_ASSIGN(ProcessIterator);
-};
-
-// This class provides a way to iterate through the list of processes
-// on the current machine that were started from the given executable
-// name. To use, create an instance and then call NextProcessEntry()
-// until it returns false.
-class BASE_EXPORT NamedProcessIterator : public ProcessIterator {
- public:
- NamedProcessIterator(const FilePath::StringType& executable_name,
- const ProcessFilter* filter);
- ~NamedProcessIterator() override;
-
- protected:
- bool IncludeEntry() override;
-
- private:
- FilePath::StringType executable_name_;
-
- DISALLOW_COPY_AND_ASSIGN(NamedProcessIterator);
-};
-
-// Returns the number of processes on the machine that are running from the
-// given executable name. If filter is non-null, then only processes selected
-// by the filter will be counted.
-BASE_EXPORT int GetProcessCount(const FilePath::StringType& executable_name,
- const ProcessFilter* filter);
-
-} // namespace base
-
-#endif // BASE_PROCESS_PROCESS_ITERATOR_H_
« no previous file with comments | « base/process/process_info_win.cc ('k') | base/process/process_iterator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698