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

Side by Side Diff: mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.cc

Issue 294833002: Mojo: more idiomatic C++ bindings (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more 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 #include "mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h" 5 #include "mojo/services/public/cpp/view_manager/lib/view_manager_synchronizer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "mojo/public/cpp/shell/connect.h" 9 #include "mojo/public/cpp/shell/connect.h"
10 #include "mojo/public/interfaces/shell/shell.mojom.h" 10 #include "mojo/public/interfaces/shell/shell.mojom.h"
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 new SetActiveViewTransaction(node_id, view_id, this)); 387 new SetActiveViewTransaction(node_id, view_id, this));
388 Sync(); 388 Sync();
389 } 389 }
390 390
391 //////////////////////////////////////////////////////////////////////////////// 391 ////////////////////////////////////////////////////////////////////////////////
392 // ViewManagerSynchronizer, IViewManagerClient implementation: 392 // ViewManagerSynchronizer, IViewManagerClient implementation:
393 393
394 void ViewManagerSynchronizer::OnConnectionEstablished( 394 void ViewManagerSynchronizer::OnConnectionEstablished(
395 TransportConnectionId connection_id, 395 TransportConnectionId connection_id,
396 TransportChangeId next_server_change_id, 396 TransportChangeId next_server_change_id,
397 const mojo::Array<INode>& nodes) { 397 mojo::Array<INodePtr> nodes) {
398 connected_ = true; 398 connected_ = true;
399 connection_id_ = connection_id; 399 connection_id_ = connection_id;
400 next_server_change_id_ = next_server_change_id; 400 next_server_change_id_ = next_server_change_id;
401 401
402 ViewManagerPrivate private_manager(view_manager_); 402 ViewManagerPrivate private_manager(view_manager_);
403 std::vector<ViewTreeNode*> parents; 403 std::vector<ViewTreeNode*> parents;
404 ViewTreeNode* root = NULL; 404 ViewTreeNode* root = NULL;
405 ViewTreeNode* last_node = NULL; 405 ViewTreeNode* last_node = NULL;
406 for (size_t i = 0; i < nodes.size(); ++i) { 406 for (size_t i = 0; i < nodes.size(); ++i) {
407 if (last_node && nodes[i].parent_id() == last_node->id()) { 407 if (last_node && nodes[i]->parent_id == last_node->id()) {
408 parents.push_back(last_node); 408 parents.push_back(last_node);
409 } else if (!parents.empty()) { 409 } else if (!parents.empty()) {
410 while (parents.back()->id() != nodes[i].parent_id()) 410 while (parents.back()->id() != nodes[i]->parent_id)
411 parents.pop_back(); 411 parents.pop_back();
412 } 412 }
413 ViewTreeNode* node = 413 ViewTreeNode* node =
414 AddNodeToViewManager(view_manager_, 414 AddNodeToViewManager(view_manager_,
415 !parents.empty() ? parents.back() : NULL, 415 !parents.empty() ? parents.back() : NULL,
416 nodes[i].node_id(), 416 nodes[i]->node_id,
417 nodes[i].view_id()); 417 nodes[i]->view_id);
418 if (!last_node) 418 if (!last_node)
419 root = node; 419 root = node;
420 last_node = node; 420 last_node = node;
421 } 421 }
422 private_manager.set_root(root); 422 private_manager.set_root(root);
423 if (init_loop_) 423 if (init_loop_)
424 init_loop_->Quit(); 424 init_loop_->Quit();
425 425
426 Sync(); 426 Sync();
427 } 427 }
428 428
429 void ViewManagerSynchronizer::OnServerChangeIdAdvanced( 429 void ViewManagerSynchronizer::OnServerChangeIdAdvanced(
430 uint32_t next_server_change_id) { 430 uint32_t next_server_change_id) {
431 next_server_change_id_ = next_server_change_id; 431 next_server_change_id_ = next_server_change_id;
432 } 432 }
433 433
434 void ViewManagerSynchronizer::OnNodeHierarchyChanged( 434 void ViewManagerSynchronizer::OnNodeHierarchyChanged(
435 uint32_t node_id, 435 uint32_t node_id,
436 uint32_t new_parent_id, 436 uint32_t new_parent_id,
437 uint32_t old_parent_id, 437 uint32_t old_parent_id,
438 TransportChangeId server_change_id, 438 TransportChangeId server_change_id,
439 const mojo::Array<INode>& nodes) { 439 mojo::Array<INodePtr> nodes) {
440 // TODO: deal with |nodes|. 440 // TODO: deal with |nodes|.
441 next_server_change_id_ = server_change_id + 1; 441 next_server_change_id_ = server_change_id + 1;
442 442
443 ViewTreeNode* new_parent = 443 ViewTreeNode* new_parent =
444 view_manager_->tree()->GetChildById(new_parent_id); 444 view_manager_->tree()->GetChildById(new_parent_id);
445 ViewTreeNode* old_parent = 445 ViewTreeNode* old_parent =
446 view_manager_->tree()->GetChildById(old_parent_id); 446 view_manager_->tree()->GetChildById(old_parent_id);
447 ViewTreeNode* node = NULL; 447 ViewTreeNode* node = NULL;
448 if (old_parent) { 448 if (old_parent) {
449 // Existing node, mapped in this connection's tree. 449 // Existing node, mapped in this connection's tree.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 } 517 }
518 518
519 void ViewManagerSynchronizer::RemoveFromPendingQueue( 519 void ViewManagerSynchronizer::RemoveFromPendingQueue(
520 ViewManagerTransaction* transaction) { 520 ViewManagerTransaction* transaction) {
521 DCHECK_EQ(transaction, pending_transactions_.front()); 521 DCHECK_EQ(transaction, pending_transactions_.front());
522 pending_transactions_.erase(pending_transactions_.begin()); 522 pending_transactions_.erase(pending_transactions_.begin());
523 } 523 }
524 524
525 } // namespace view_manager 525 } // namespace view_manager
526 } // namespace mojo 526 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698