diff options
Diffstat (limited to 'mojo/edk/system/handle_table.h')
-rw-r--r-- | mojo/edk/system/handle_table.h | 75 |
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_ |