Index: sandbox/src/handle_table.h |
diff --git a/sandbox/src/handle_table.h b/sandbox/src/handle_table.h |
deleted file mode 100644 |
index e2b2615fabc2084b8552015098812dbd98aa85f4..0000000000000000000000000000000000000000 |
--- a/sandbox/src/handle_table.h |
+++ /dev/null |
@@ -1,159 +0,0 @@ |
-// Copyright (c) 2011 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. |
- |
-#ifndef SANDBOX_SRC_HANDLE_TABLE_H_ |
-#define SANDBOX_SRC_HANDLE_TABLE_H_ |
- |
-#include <windows.h> |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "base/string16.h" |
-#include "sandbox/src/nt_internals.h" |
- |
-namespace sandbox { |
- |
-// HandleTable retrieves the global handle table and provides helper classes |
-// for iterating through the table and retrieving handle info. |
-class HandleTable { |
- public: |
- static const char16* HandleTable::kTypeProcess; |
- static const char16* HandleTable::kTypeThread; |
- static const char16* HandleTable::kTypeFile; |
- static const char16* HandleTable::kTypeDirectory; |
- static const char16* HandleTable::kTypeKey; |
- static const char16* HandleTable::kTypeWindowStation; |
- static const char16* HandleTable::kTypeDesktop; |
- static const char16* HandleTable::kTypeService; |
- static const char16* HandleTable::kTypeMutex; |
- static const char16* HandleTable::kTypeSemaphore; |
- static const char16* HandleTable::kTypeEvent; |
- static const char16* HandleTable::kTypeTimer; |
- static const char16* HandleTable::kTypeNamedPipe; |
- static const char16* HandleTable::kTypeJobObject; |
- static const char16* HandleTable::kTypeFileMap; |
- static const char16* HandleTable::kTypeAlpcPort; |
- |
- class Iterator; |
- |
- // Used by the iterator to provide simple caching accessors to handle data. |
- class HandleEntry { |
- public: |
- bool operator==(const HandleEntry& rhs) const { |
- return handle_entry_ == rhs.handle_entry_; |
- } |
- |
- bool operator!=(const HandleEntry& rhs) const { |
- return handle_entry_ != rhs.handle_entry_; |
- } |
- |
- const SYSTEM_HANDLE_INFORMATION* handle_entry() const { |
- return handle_entry_; |
- } |
- |
- const OBJECT_TYPE_INFORMATION* TypeInfo(); |
- |
- const string16& Name(); |
- |
- const string16& Type(); |
- |
- bool IsType(const string16& type_string); |
- |
- private: |
- friend class Iterator; |
- friend class HandleTable; |
- |
- enum UpdateType { |
- UPDATE_INFO_ONLY, |
- UPDATE_INFO_AND_NAME, |
- UPDATE_INFO_AND_TYPE_NAME, |
- }; |
- |
- explicit HandleEntry(const SYSTEM_HANDLE_INFORMATION* handle_info_entry); |
- |
- bool needs_info_update() { return handle_entry_ != last_entry_; } |
- |
- void UpdateInfo(UpdateType flag); |
- |
- OBJECT_TYPE_INFORMATION* type_info_internal() { |
- return reinterpret_cast<OBJECT_TYPE_INFORMATION*>( |
- &(type_info_buffer_[0])); |
- } |
- |
- const SYSTEM_HANDLE_INFORMATION* handle_entry_; |
- const SYSTEM_HANDLE_INFORMATION* last_entry_; |
- std::vector<BYTE> type_info_buffer_; |
- string16 handle_name_; |
- string16 type_name_; |
- |
- DISALLOW_COPY_AND_ASSIGN(HandleEntry); |
- }; |
- |
- class Iterator { |
- public: |
- Iterator(const HandleTable& table, const SYSTEM_HANDLE_INFORMATION* start, |
- const SYSTEM_HANDLE_INFORMATION* stop); |
- |
- Iterator(const Iterator& it); |
- |
- Iterator& operator++() { |
- if (++(current_.handle_entry_) == end_) |
- current_.handle_entry_ = table_.end(); |
- return *this; |
- } |
- |
- bool operator==(const Iterator& rhs) const { |
- return current_ == rhs.current_; |
- } |
- |
- bool operator!=(const Iterator& rhs) const { |
- return current_ != rhs.current_; |
- } |
- |
- HandleEntry& operator*() { return current_; } |
- |
- operator const SYSTEM_HANDLE_INFORMATION*() { |
- return current_.handle_entry_; |
- } |
- |
- HandleEntry* operator->() { return ¤t_; } |
- |
- private: |
- const HandleTable& table_; |
- HandleEntry current_; |
- const SYSTEM_HANDLE_INFORMATION* end_; |
- }; |
- |
- HandleTable(); |
- |
- Iterator begin() const { |
- return Iterator(*this, handle_info()->Information, |
- &handle_info()->Information[handle_info()->NumberOfHandles]); |
- } |
- |
- const SYSTEM_HANDLE_INFORMATION_EX* handle_info() const { |
- return reinterpret_cast<const SYSTEM_HANDLE_INFORMATION_EX*>( |
- &(handle_info_buffer_[0])); |
- } |
- |
- // Returns an iterator to the handles for only the supplied process ID. |
- Iterator HandlesForProcess(ULONG process_id) const; |
- const SYSTEM_HANDLE_INFORMATION* end() const { |
- return &handle_info()->Information[handle_info()->NumberOfHandles]; |
- } |
- |
- private: |
- SYSTEM_HANDLE_INFORMATION_EX* handle_info_internal() { |
- return reinterpret_cast<SYSTEM_HANDLE_INFORMATION_EX*>( |
- &(handle_info_buffer_[0])); |
- } |
- |
- std::vector<BYTE> handle_info_buffer_; |
- |
- DISALLOW_COPY_AND_ASSIGN(HandleTable); |
-}; |
- |
-} // namespace sandbox |
- |
-#endif // SANDBOX_SRC_HANDLE_TABLE_H_ |