Vectorize website settings icons in omnibox
[chromium-blink-merge.git] / components / view_manager / client_connection.h
blob4a4b5216fe02989ef839aa27d14bcc50332d1d8c
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef COMPONENTS_VIEW_MANAGER_CLIENT_CONNECTION_H_
6 #define COMPONENTS_VIEW_MANAGER_CLIENT_CONNECTION_H_
8 #include "base/memory/scoped_ptr.h"
9 #include "components/view_manager/public/interfaces/view_tree.mojom.h"
10 #include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h"
12 namespace view_manager {
14 class ConnectionManager;
15 class ViewTreeImpl;
17 // ClientConnection encapsulates the state needed for a single client connected
18 // to the view manager.
19 class ClientConnection {
20 public:
21 ClientConnection(scoped_ptr<ViewTreeImpl> service,
22 mojo::ViewTreeClient* client);
23 virtual ~ClientConnection();
25 ViewTreeImpl* service() { return service_.get(); }
26 const ViewTreeImpl* service() const { return service_.get(); }
28 mojo::ViewTreeClient* client() { return client_; }
30 private:
31 scoped_ptr<ViewTreeImpl> service_;
32 mojo::ViewTreeClient* client_;
34 DISALLOW_COPY_AND_ASSIGN(ClientConnection);
37 // Bindings implementation of ClientConnection.
38 class DefaultClientConnection : public ClientConnection {
39 public:
40 DefaultClientConnection(
41 scoped_ptr<ViewTreeImpl> service_impl,
42 ConnectionManager* connection_manager,
43 mojo::InterfaceRequest<mojo::ViewTree> service_request,
44 mojo::ViewTreeClientPtr client);
45 ~DefaultClientConnection() override;
47 private:
48 ConnectionManager* connection_manager_;
49 mojo::Binding<mojo::ViewTree> binding_;
50 mojo::ViewTreeClientPtr client_;
52 DISALLOW_COPY_AND_ASSIGN(DefaultClientConnection);
55 } // namespace view_manager
57 #endif // COMPONENTS_VIEW_MANAGER_CLIENT_CONNECTION_H_