| OLD | NEW |
| 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_client_impl.h" | 5 #include "mojo/services/public/cpp/view_manager/lib/view_manager_client_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
| 9 #include "mojo/public/cpp/application/application_connection.h" | 9 #include "mojo/public/cpp/application/application_connection.h" |
| 10 #include "mojo/public/cpp/application/connect.h" | 10 #include "mojo/public/cpp/application/connect.h" |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 public: | 90 public: |
| 91 explicit RootObserver(Node* root) : root_(root) {} | 91 explicit RootObserver(Node* root) : root_(root) {} |
| 92 virtual ~RootObserver() {} | 92 virtual ~RootObserver() {} |
| 93 | 93 |
| 94 private: | 94 private: |
| 95 // Overridden from NodeObserver: | 95 // Overridden from NodeObserver: |
| 96 virtual void OnNodeDestroyed(Node* node) OVERRIDE { | 96 virtual void OnNodeDestroyed(Node* node) OVERRIDE { |
| 97 DCHECK_EQ(node, root_); | 97 DCHECK_EQ(node, root_); |
| 98 static_cast<ViewManagerClientImpl*>( | 98 static_cast<ViewManagerClientImpl*>( |
| 99 NodePrivate(root_).view_manager())->RemoveRoot(root_); | 99 NodePrivate(root_).view_manager())->RemoveRoot(root_); |
| 100 node->RemoveObserver(this); |
| 100 delete this; | 101 delete this; |
| 101 } | 102 } |
| 102 | 103 |
| 103 Node* root_; | 104 Node* root_; |
| 104 | 105 |
| 105 DISALLOW_COPY_AND_ASSIGN(RootObserver); | 106 DISALLOW_COPY_AND_ASSIGN(RootObserver); |
| 106 }; | 107 }; |
| 107 | 108 |
| 108 class ViewManagerTransaction { | 109 class ViewManagerTransaction { |
| 109 public: | 110 public: |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 528 ViewManagerClientImpl::ViewManagerClientImpl(ApplicationConnection* connection, | 529 ViewManagerClientImpl::ViewManagerClientImpl(ApplicationConnection* connection, |
| 529 ViewManagerDelegate* delegate) | 530 ViewManagerDelegate* delegate) |
| 530 : connected_(false), | 531 : connected_(false), |
| 531 connection_id_(0), | 532 connection_id_(0), |
| 532 next_id_(1), | 533 next_id_(1), |
| 533 next_server_change_id_(0), | 534 next_server_change_id_(0), |
| 534 delegate_(delegate), | 535 delegate_(delegate), |
| 535 dispatcher_(NULL) {} | 536 dispatcher_(NULL) {} |
| 536 | 537 |
| 537 ViewManagerClientImpl::~ViewManagerClientImpl() { | 538 ViewManagerClientImpl::~ViewManagerClientImpl() { |
| 539 delegate_->OnViewManagerDisconnected(this); |
| 538 while (!nodes_.empty()) { | 540 while (!nodes_.empty()) { |
| 539 IdToNodeMap::iterator it = nodes_.begin(); | 541 IdToNodeMap::iterator it = nodes_.begin(); |
| 540 if (OwnsNode(it->second->id())) | 542 if (OwnsNode(it->second->id())) |
| 541 it->second->Destroy(); | 543 it->second->Destroy(); |
| 542 else | 544 else |
| 543 nodes_.erase(it); | 545 nodes_.erase(it); |
| 544 } | 546 } |
| 545 while (!views_.empty()) { | 547 while (!views_.empty()) { |
| 546 IdToViewMap::iterator it = views_.begin(); | 548 IdToViewMap::iterator it = views_.begin(); |
| 547 if (OwnsView(it->second->id())) | 549 if (OwnsView(it->second->id())) |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 | 898 |
| 897 // static | 899 // static |
| 898 void ViewManager::ConfigureIncomingConnection( | 900 void ViewManager::ConfigureIncomingConnection( |
| 899 ApplicationConnection* connection, | 901 ApplicationConnection* connection, |
| 900 ViewManagerDelegate* delegate) { | 902 ViewManagerDelegate* delegate) { |
| 901 connection->AddService<ViewManagerClientImpl>(delegate); | 903 connection->AddService<ViewManagerClientImpl>(delegate); |
| 902 } | 904 } |
| 903 | 905 |
| 904 } // namespace view_manager | 906 } // namespace view_manager |
| 905 } // namespace mojo | 907 } // namespace mojo |
| OLD | NEW |