Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(481)

Side by Side Diff: mojo/services/view_manager/view_manager_connection.h

Issue 250633003: Adds more to viewmanager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: override Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_CONNECTION_H_ 5 #ifndef MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_CONNECTION_H_
6 #define MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_CONNECTION_H_ 6 #define MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_CONNECTION_H_
7 7
8 #include <set> 8 #include <set>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "mojo/public/cpp/shell/service.h" 11 #include "mojo/public/cpp/shell/service.h"
12 #include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h" 12 #include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h"
13 #include "mojo/services/view_manager/node_delegate.h" 13 #include "mojo/services/view_manager/node_delegate.h"
14 #include "mojo/services/view_manager/view_manager_export.h" 14 #include "mojo/services/view_manager/view_manager_export.h"
15 15
16 namespace mojo { 16 namespace mojo {
17 namespace services { 17 namespace services {
18 namespace view_manager { 18 namespace view_manager {
19 19
20 class Node; 20 class Node;
21 class RootNodeManager; 21 class RootNodeManager;
22 class View;
22 23
23 // Manages a connection from the client. 24 // Manages a connection from the client.
24 class MOJO_VIEW_MANAGER_EXPORT ViewManagerConnection 25 class MOJO_VIEW_MANAGER_EXPORT ViewManagerConnection
25 : public ServiceConnection<ViewManager, ViewManagerConnection, 26 : public ServiceConnection<ViewManager, ViewManagerConnection,
26 RootNodeManager>, 27 RootNodeManager>,
27 public NodeDelegate { 28 public NodeDelegate {
28 public: 29 public:
29 ViewManagerConnection(); 30 ViewManagerConnection();
30 virtual ~ViewManagerConnection(); 31 virtual ~ViewManagerConnection();
31 32
32 uint16_t id() const { return id_; } 33 uint16_t id() const { return id_; }
33 34
34 // Invoked from Service when connection is established. 35 // Invoked from Service when connection is established.
35 void Initialize( 36 void Initialize(
36 ServiceConnector<ViewManagerConnection, RootNodeManager>* service_factory, 37 ServiceConnector<ViewManagerConnection, RootNodeManager>* service_factory,
37 ScopedMessagePipeHandle client_handle); 38 ScopedMessagePipeHandle client_handle);
38 39
39 // Returns the Node by id. 40 // Returns the Node with the specified id.
40 Node* GetNode(const NodeId& id); 41 Node* GetNode(const NodeId& id);
41 42
43 // Returns the View with the specified id.
44 View* GetView(const ViewId& id);
45
42 // Notifies the client of a hierarchy change. 46 // Notifies the client of a hierarchy change.
43 void NotifyNodeHierarchyChanged(const NodeId& node, 47 void NotifyNodeHierarchyChanged(const NodeId& node,
44 const NodeId& new_parent, 48 const NodeId& new_parent,
45 const NodeId& old_parent, 49 const NodeId& old_parent,
46 int32_t change_id); 50 int32_t change_id);
51 void NotifyNodeViewReplaced(const NodeId& node,
52 const ViewId& new_view_id,
53 const ViewId& old_view_id,
54 int32_t change_id);
47 55
48 private: 56 private:
49 typedef std::map<uint16_t, Node*> NodeMap; 57 typedef std::map<uint16_t, Node*> NodeMap;
58 typedef std::map<uint16_t, View*> ViewMap;
59
60 // Deletes a node owned by this connection. Returns true on success. |source|
61 // is the connection that originated the change.
62 bool DeleteNodeImpl(ViewManagerConnection* source,
63 const NodeId& node_id,
64 int32_t change_id);
65
66 // Deletes a view owned by this connection. Returns true on success. |source|
67 // is the connection that originated the change.
68 bool DeleteViewImpl(ViewManagerConnection* source,
69 const ViewId& view_id,
70 int32_t change_id);
71
72 // Sets the view associated with a node.
73 bool SetViewImpl(const NodeId& node_id,
74 const ViewId& view_id,
75 int32_t change_id);
50 76
51 // Overridden from ViewManager: 77 // Overridden from ViewManager:
52 virtual void CreateNode(uint16_t node_id, 78 virtual void CreateNode(uint16_t node_id,
53 const Callback<void(bool)>& callback) OVERRIDE; 79 const Callback<void(bool)>& callback) OVERRIDE;
80 virtual void DeleteNode(uint32_t transport_node_id,
81 int32_t change_id,
82 const mojo::Callback<void(bool)>& callback) OVERRIDE;
54 virtual void AddNode(uint32_t parent_id, 83 virtual void AddNode(uint32_t parent_id,
55 uint32_t child_id, 84 uint32_t child_id,
56 int32_t change_id, 85 int32_t change_id,
57 const Callback<void(bool)>& callback) OVERRIDE; 86 const Callback<void(bool)>& callback) OVERRIDE;
58 virtual void RemoveNodeFromParent( 87 virtual void RemoveNodeFromParent(
59 uint32_t node_id, 88 uint32_t node_id,
60 int32_t change_id, 89 int32_t change_id,
61 const Callback<void(bool)>& callback) OVERRIDE; 90 const Callback<void(bool)>& callback) OVERRIDE;
91 virtual void CreateView(uint16_t view_id,
92 const mojo::Callback<void(bool)>& callback) OVERRIDE;
93 virtual void DeleteView(uint32_t transport_view_id,
94 int32_t change_id,
95 const mojo::Callback<void(bool)>& callback) OVERRIDE;
96 virtual void SetView(uint32_t transport_node_id,
97 uint32_t transport_view_id,
98 int32_t change_id,
99 const mojo::Callback<void(bool)>& callback) OVERRIDE;
62 100
63 // Overriden from NodeDelegate: 101 // Overriden from NodeDelegate:
64 virtual void OnNodeHierarchyChanged(const NodeId& node, 102 virtual void OnNodeHierarchyChanged(const NodeId& node,
65 const NodeId& new_parent, 103 const NodeId& new_parent,
66 const NodeId& old_parent) OVERRIDE; 104 const NodeId& old_parent) OVERRIDE;
105 virtual void OnNodeViewReplaced(const NodeId& node,
106 const ViewId& new_view_id,
107 const ViewId& old_view_id) OVERRIDE;
67 108
68 // Id of this connection as assigned by RootNodeManager. Assigned in 109 // Id of this connection as assigned by RootNodeManager. Assigned in
69 // Initialize(). 110 // Initialize().
70 uint16_t id_; 111 uint16_t id_;
71 112
72 NodeMap node_map_; 113 NodeMap node_map_;
73 114
115 ViewMap view_map_;
116
74 DISALLOW_COPY_AND_ASSIGN(ViewManagerConnection); 117 DISALLOW_COPY_AND_ASSIGN(ViewManagerConnection);
75 }; 118 };
76 119
77 } // namespace view_manager 120 } // namespace view_manager
78 } // namespace services 121 } // namespace services
79 } // namespace mojo 122 } // namespace mojo
80 123
81 #endif // MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_CONNECTION_H_ 124 #endif // MOJO_SERVICES_VIEW_MANAGER_VIEW_MANAGER_CONNECTION_H_
OLDNEW
« no previous file with comments | « mojo/services/view_manager/view.cc ('k') | mojo/services/view_manager/view_manager_connection.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698