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

Unified Diff: mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h

Issue 260863008: Add support for mapping node tree on the client. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . 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 side-by-side diff with in-line comments
Download patch
Index: mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h
diff --git a/mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h b/mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h
index 54da43087afc9441ceb650dc7de32b7f45348b37..e3b658a0620fb43e08a482315b35d65c1e12a11f 100644
--- a/mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h
+++ b/mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h
@@ -8,6 +8,7 @@
#include "base/basictypes.h"
#include "base/memory/scoped_vector.h"
#include "mojo/public/cpp/bindings/remote_ptr.h"
+#include "mojo/services/public/cpp/view_manager/view_manager_types.h"
#include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h"
namespace mojo {
@@ -23,11 +24,20 @@ class ViewManagerSynchronizer : public IViewManagerClient {
explicit ViewManagerSynchronizer(ViewManager* view_manager);
virtual ~ViewManagerSynchronizer();
+ bool connected() const { return connected_; }
+
// API exposed to the node implementation that pushes local changes to the
// service.
uint16_t CreateViewTreeNode();
- void AddChild(uint16_t child_id, uint16_t parent_id);
- void RemoveChild(uint16_t child_id, uint16_t parent_id);
+ void DestroyViewTreeNode(TransportNodeId node_id);
+
+ // These methods take TransportIds. For views owned by the current connection,
+ // the connection id high word can be zero. In all cases, the TransportId 0x1
+ // refers to the root node.
+ void AddChild(TransportNodeId child_id, TransportNodeId parent_id);
+ void RemoveChild(TransportNodeId child_id, TransportNodeId parent_id);
+
+ void BuildNodeTree(const Callback<void()>& callback);
private:
friend class ViewManagerTransaction;
@@ -39,10 +49,10 @@ class ViewManagerSynchronizer : public IViewManagerClient {
uint32 new_parent,
uint32 old_parent,
uint32 change_id) OVERRIDE;
- virtual void OnNodeViewReplaced(uint32_t node,
- uint32_t new_view_id,
- uint32_t old_view_id,
- uint32_t change_id) OVERRIDE;
+ virtual void OnNodeViewReplaced(uint32_t node,
+ uint32_t new_view_id,
+ uint32_t old_view_id,
+ uint32_t change_id) OVERRIDE;
// Called to schedule a sync of the client model with the service after a
// return to the message loop.
@@ -58,10 +68,18 @@ class ViewManagerSynchronizer : public IViewManagerClient {
// the queue?
uint32_t GetNextChangeId();
+ // Called from transactions to notify when a commit is made to the service and
+ // when a response is received.
+ void NotifyCommit();
+ void NotifyCommitResponse(bool success);
+
// Removes |transaction| from the pending queue. |transaction| must be at the
// front of the queue.
void RemoveFromPendingQueue(ViewManagerTransaction* transaction);
+ void OnTreeReceived(const Callback<void()>& callback,
+ const Array<INode>& data);
+
ViewManager* view_manager_;
bool connected_;
uint16_t connection_id_;

Powered by Google App Engine
This is Rietveld 408576698