Index: mojo/public/cpp/bindings/interface_ptr_set.h |
diff --git a/mojo/public/cpp/bindings/interface_ptr_set.h b/mojo/public/cpp/bindings/interface_ptr_set.h |
deleted file mode 100644 |
index 86aa8a8213d024f53ff40a7c15c84e14751be815..0000000000000000000000000000000000000000 |
--- a/mojo/public/cpp/bindings/interface_ptr_set.h |
+++ /dev/null |
@@ -1,73 +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_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_SET_H_ |
-#define MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_SET_H_ |
- |
-#include <assert.h> |
- |
-#include <vector> |
- |
-#include "mojo/public/cpp/bindings/interface_ptr.h" |
- |
-namespace mojo { |
- |
-// An InterfacePtrSet contains a collection of InterfacePtrs |
-// that are automatically removed from the collection and destroyed |
-// when their associated MessagePipe experiences a connection error. |
-// When the set is destroyed all of the MessagePipes will be closed. |
-template <typename Interface> |
-class InterfacePtrSet { |
- public: |
- InterfacePtrSet() {} |
- ~InterfacePtrSet() { CloseAll(); } |
- |
- // |ptr| must be bound to a message pipe. |
- void AddInterfacePtr(InterfacePtr<Interface> ptr) { |
- assert(ptr.is_bound()); |
- ptrs_.emplace_back(ptr.Pass()); |
- InterfacePtr<Interface>& intrfc_ptr = ptrs_.back(); |
- Interface* pointer = intrfc_ptr.get(); |
- // Set the connection error handler for the newly added InterfacePtr to be a |
- // function that will erase it from the vector. |
- intrfc_ptr.set_connection_error_handler([pointer, this]() { |
- // Since InterfacePtr itself is a movable type, the thing that uniquely |
- // identifies the InterfacePtr we wish to erase is its Interface*. |
- auto it = std::find_if(ptrs_.begin(), ptrs_.end(), |
- [pointer](const InterfacePtr<Interface>& p) { |
- return (p.get() == pointer); |
- }); |
- assert(it != ptrs_.end()); |
- ptrs_.erase(it); |
- }); |
- } |
- |
- // Applies |function| to each of the InterfacePtrs in the set. |
- template <typename FunctionType> |
- void ForAllPtrs(FunctionType function) { |
- for (const auto& it : ptrs_) { |
- if (it) |
- function(it.get()); |
- } |
- } |
- |
- // Closes the MessagePipe associated with each of the InterfacePtrs in |
- // this set and clears the set. |
- void CloseAll() { |
- for (auto& it : ptrs_) { |
- if (it) |
- it.reset(); |
- } |
- ptrs_.clear(); |
- } |
- |
- size_t size() const { return ptrs_.size(); } |
- |
- private: |
- std::vector<InterfacePtr<Interface>> ptrs_; |
-}; |
- |
-} // namespace mojo |
- |
-#endif // MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_PTR_SET_H_ |