| Index: mojo/common/weak_binding_set.h
|
| diff --git a/mojo/common/weak_binding_set.h b/mojo/common/weak_binding_set.h
|
| deleted file mode 100644
|
| index 87383889621c8e880f8523d77c37ad54a77314b7..0000000000000000000000000000000000000000
|
| --- a/mojo/common/weak_binding_set.h
|
| +++ /dev/null
|
| @@ -1,106 +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_COMMON_WEAK_BINDING_SET_H_
|
| -#define MOJO_COMMON_WEAK_BINDING_SET_H_
|
| -
|
| -#include <algorithm>
|
| -#include <vector>
|
| -
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h"
|
| -
|
| -namespace mojo {
|
| -
|
| -template <typename Interface>
|
| -class WeakBinding;
|
| -
|
| -// Use this class to manage a set of weak pointers to bindings each of which is
|
| -// owned by the pipe they are bound to.
|
| -template <typename Interface>
|
| -class WeakBindingSet : public ErrorHandler {
|
| - public:
|
| - WeakBindingSet() : error_handler_(nullptr) {}
|
| - ~WeakBindingSet() { CloseAllBindings(); }
|
| -
|
| - void set_error_handler(ErrorHandler* error_handler) {
|
| - error_handler_ = error_handler;
|
| - }
|
| -
|
| - void AddBinding(Interface* impl, InterfaceRequest<Interface> request) {
|
| - auto binding = new WeakBinding<Interface>(impl, request.Pass());
|
| - binding->set_error_handler(this);
|
| - bindings_.push_back(binding->GetWeakPtr());
|
| - }
|
| -
|
| - void CloseAllBindings() {
|
| - for (const auto& it : bindings_) {
|
| - if (it)
|
| - it->Close();
|
| - }
|
| - bindings_.clear();
|
| - }
|
| -
|
| - private:
|
| - // ErrorHandler implementation.
|
| - void OnConnectionError() override {
|
| - // Clear any deleted bindings.
|
| - bindings_.erase(
|
| - std::remove_if(bindings_.begin(), bindings_.end(),
|
| - [](const base::WeakPtr<WeakBinding<Interface>>& p) {
|
| - return p.get() == nullptr;
|
| - }),
|
| - bindings_.end());
|
| -
|
| - if (error_handler_)
|
| - error_handler_->OnConnectionError();
|
| - }
|
| -
|
| - ErrorHandler* error_handler_;
|
| - std::vector<base::WeakPtr<WeakBinding<Interface>>> bindings_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(WeakBindingSet);
|
| -};
|
| -
|
| -template <typename Interface>
|
| -class WeakBinding : public ErrorHandler {
|
| - public:
|
| - WeakBinding(Interface* impl, InterfaceRequest<Interface> request)
|
| - : binding_(impl, request.Pass()),
|
| - error_handler_(nullptr),
|
| - weak_ptr_factory_(this) {
|
| - binding_.set_error_handler(this);
|
| - }
|
| -
|
| - ~WeakBinding() override {}
|
| -
|
| - void set_error_handler(ErrorHandler* error_handler) {
|
| - error_handler_ = error_handler;
|
| - }
|
| -
|
| - base::WeakPtr<WeakBinding> GetWeakPtr() {
|
| - return weak_ptr_factory_.GetWeakPtr();
|
| - }
|
| -
|
| - void Close() { binding_.Close(); }
|
| -
|
| - // ErrorHandler implementation.
|
| - void OnConnectionError() override {
|
| - ErrorHandler* error_handler = error_handler_;
|
| - delete this;
|
| - if (error_handler)
|
| - error_handler->OnConnectionError();
|
| - }
|
| -
|
| - private:
|
| - mojo::Binding<Interface> binding_;
|
| - ErrorHandler* error_handler_;
|
| - base::WeakPtrFactory<WeakBinding> weak_ptr_factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(WeakBinding);
|
| -};
|
| -
|
| -} // namespace mojo
|
| -
|
| -#endif // MOJO_COMMON_WEAK_BINDING_SET_H_
|
|
|