summaryrefslogtreecommitdiff
path: root/mojo/edk/system/handle_table.h
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/edk/system/handle_table.h')
-rw-r--r--mojo/edk/system/handle_table.h75
1 files changed, 0 insertions, 75 deletions
diff --git a/mojo/edk/system/handle_table.h b/mojo/edk/system/handle_table.h
deleted file mode 100644
index 882d5405ce..0000000000
--- a/mojo/edk/system/handle_table.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright 2014 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 MOJO_EDK_SYSTEM_HANDLE_TABLE_H_
-#define MOJO_EDK_SYSTEM_HANDLE_TABLE_H_
-
-#include <stdint.h>
-
-#include <vector>
-
-#include "base/containers/hash_tables.h"
-#include "base/macros.h"
-#include "mojo/edk/system/dispatcher.h"
-#include "mojo/public/c/system/types.h"
-
-namespace mojo {
-namespace edk {
-
-class HandleTable {
- public:
- HandleTable();
- ~HandleTable();
-
- MojoHandle AddDispatcher(scoped_refptr<Dispatcher> dispatcher);
-
- // Inserts multiple dispatchers received from message transit, populating
- // |handles| with their newly allocated handles. Returns |true| on success.
- bool AddDispatchersFromTransit(
- const std::vector<Dispatcher::DispatcherInTransit>& dispatchers,
- MojoHandle* handles);
-
- scoped_refptr<Dispatcher> GetDispatcher(MojoHandle handle) const;
- MojoResult GetAndRemoveDispatcher(MojoHandle,
- scoped_refptr<Dispatcher>* dispatcher);
-
- // Marks handles as busy and populates |dispatchers|. Returns MOJO_RESULT_BUSY
- // if any of the handles are already in transit; MOJO_RESULT_INVALID_ARGUMENT
- // if any of the handles are invalid; or MOJO_RESULT_OK if successful.
- MojoResult BeginTransit(
- const MojoHandle* handles,
- uint32_t num_handles,
- std::vector<Dispatcher::DispatcherInTransit>* dispatchers);
-
- void CompleteTransitAndClose(
- const std::vector<Dispatcher::DispatcherInTransit>& dispatchers);
- void CancelTransit(
- const std::vector<Dispatcher::DispatcherInTransit>& dispatchers);
-
- void GetActiveHandlesForTest(std::vector<MojoHandle> *handles);
-
- private:
- struct Entry {
- Entry();
- explicit Entry(scoped_refptr<Dispatcher> dispatcher);
- Entry(const Entry& other);
- ~Entry();
-
- scoped_refptr<Dispatcher> dispatcher;
- bool busy = false;
- };
-
- using HandleMap = base::hash_map<MojoHandle, Entry>;
-
- HandleMap handles_;
-
- uint32_t next_available_handle_ = 1;
-
- DISALLOW_COPY_AND_ASSIGN(HandleTable);
-};
-
-} // namespace edk
-} // namespace mojo
-
-#endif // MOJO_EDK_SYSTEM_HANDLE_TABLE_H_