Index: trunk/src/mojo/services/view_manager/view_manager_connection.cc |
=================================================================== |
--- trunk/src/mojo/services/view_manager/view_manager_connection.cc (revision 270872) |
+++ trunk/src/mojo/services/view_manager/view_manager_connection.cc (working copy) |
@@ -59,9 +59,7 @@ |
} // namespace |
-ViewManagerConnection::ViewManagerConnection(RootNodeManager* root_node_manager) |
- : root_node_manager_(root_node_manager), |
- id_(0) { |
+ViewManagerConnection::ViewManagerConnection() : id_(0) { |
} |
ViewManagerConnection::~ViewManagerConnection() { |
@@ -80,25 +78,22 @@ |
} |
STLDeleteContainerPairSecondPointers(node_map_.begin(), node_map_.end()); |
- root_node_manager_->RemoveConnection(this); |
+ context()->RemoveConnection(this); |
} |
-void ViewManagerConnection::OnConnectionEstablished() { |
- DCHECK_EQ(0, id_); // Should only get SetClient() once. |
- id_ = root_node_manager_->GetAndAdvanceNextConnectionId(); |
- root_node_manager_->AddConnection(this); |
- client()->OnConnectionEstablished( |
- id_, root_node_manager_->next_server_change_id()); |
+void ViewManagerConnection::Initialize() { |
+ DCHECK_EQ(0, id_); // Should only get Initialize() once. |
+ id_ = context()->GetAndAdvanceNextConnectionId(); |
+ context()->AddConnection(this); |
+ client()->OnConnectionEstablished(id_, context()->next_server_change_id()); |
} |
-void ViewManagerConnection::OnConnectionError() {} |
- |
Node* ViewManagerConnection::GetNode(const NodeId& id) { |
if (id_ == id.connection_id) { |
NodeMap::iterator i = node_map_.find(id.node_id); |
return i == node_map_.end() ? NULL : i->second; |
} |
- return root_node_manager_->GetNode(id); |
+ return context()->GetNode(id); |
} |
View* ViewManagerConnection::GetView(const ViewId& id) { |
@@ -106,7 +101,7 @@ |
ViewMap::const_iterator i = view_map_.find(id.view_id); |
return i == view_map_.end() ? NULL : i->second; |
} |
- return root_node_manager_->GetView(id); |
+ return context()->GetView(id); |
} |
void ViewManagerConnection::NotifyNodeHierarchyChanged( |
@@ -146,8 +141,7 @@ |
if (!node) |
return false; |
RootNodeManager::ScopedChange change( |
- source, root_node_manager_, |
- RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID); |
+ source, context(), RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID); |
if (node->GetParent()) |
node->GetParent()->Remove(node); |
std::vector<Node*> children(node->GetChildren()); |
@@ -157,7 +151,7 @@ |
node_map_.erase(node_id.node_id); |
delete node; |
node = NULL; |
- root_node_manager_->NotifyNodeDeleted(node_id); |
+ context()->NotifyNodeDeleted(node_id); |
return true; |
} |
@@ -168,7 +162,7 @@ |
if (!view) |
return false; |
RootNodeManager::ScopedChange change( |
- source, root_node_manager_, |
+ source, context(), |
RootNodeManager::CHANGE_TYPE_DONT_ADVANCE_SERVER_CHANGE_ID); |
if (view->node()) |
view->node()->SetView(NULL); |
@@ -177,7 +171,7 @@ |
// valid. |
const ViewId view_id_copy(view_id); |
delete view; |
- root_node_manager_->NotifyViewDeleted(view_id_copy); |
+ context()->NotifyViewDeleted(view_id_copy); |
return true; |
} |
@@ -190,7 +184,7 @@ |
if (!view && view_id != ViewId()) |
return false; |
RootNodeManager::ScopedChange change( |
- this, root_node_manager_, |
+ this, context(), |
RootNodeManager::CHANGE_TYPE_DONT_ADVANCE_SERVER_CHANGE_ID); |
node->SetView(view); |
return true; |
@@ -213,7 +207,7 @@ |
TransportNodeId transport_node_id, |
const Callback<void(bool)>& callback) { |
const NodeId node_id(NodeIdFromTransportId(transport_node_id)); |
- ViewManagerConnection* connection = root_node_manager_->GetConnection( |
+ ViewManagerConnection* connection = context()->GetConnection( |
node_id.connection_id); |
callback.Run(connection && |
connection->DeleteNodeImpl(this, node_id)); |
@@ -225,14 +219,14 @@ |
TransportChangeId server_change_id, |
const Callback<void(bool)>& callback) { |
bool success = false; |
- if (server_change_id == root_node_manager_->next_server_change_id()) { |
+ if (server_change_id == context()->next_server_change_id()) { |
Node* parent = GetNode(NodeIdFromTransportId(parent_id)); |
Node* child = GetNode(NodeIdFromTransportId(child_id)); |
if (parent && child && child->GetParent() != parent && |
!child->window()->Contains(parent->window())) { |
success = true; |
RootNodeManager::ScopedChange change( |
- this, root_node_manager_, |
+ this, context(), |
RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID); |
parent->Add(child); |
} |
@@ -245,12 +239,12 @@ |
TransportChangeId server_change_id, |
const Callback<void(bool)>& callback) { |
bool success = false; |
- if (server_change_id == root_node_manager_->next_server_change_id()) { |
+ if (server_change_id == context()->next_server_change_id()) { |
Node* node = GetNode(NodeIdFromTransportId(node_id)); |
if (node && node->GetParent()) { |
success = true; |
RootNodeManager::ScopedChange change( |
- this, root_node_manager_, |
+ this, context(), |
RootNodeManager::CHANGE_TYPE_ADVANCE_SERVER_CHANGE_ID); |
node->GetParent()->Remove(node); |
} |
@@ -287,7 +281,7 @@ |
TransportViewId transport_view_id, |
const Callback<void(bool)>& callback) { |
const ViewId view_id(ViewIdFromTransportId(transport_view_id)); |
- ViewManagerConnection* connection = root_node_manager_->GetConnection( |
+ ViewManagerConnection* connection = context()->GetConnection( |
view_id.connection_id); |
callback.Run(connection && connection->DeleteViewImpl(this, view_id)); |
} |
@@ -322,13 +316,13 @@ |
void ViewManagerConnection::OnNodeHierarchyChanged(const NodeId& node, |
const NodeId& new_parent, |
const NodeId& old_parent) { |
- root_node_manager_->NotifyNodeHierarchyChanged(node, new_parent, old_parent); |
+ context()->NotifyNodeHierarchyChanged(node, new_parent, old_parent); |
} |
void ViewManagerConnection::OnNodeViewReplaced(const NodeId& node, |
const ViewId& new_view_id, |
const ViewId& old_view_id) { |
- root_node_manager_->NotifyNodeViewReplaced(node, new_view_id, old_view_id); |
+ context()->NotifyNodeViewReplaced(node, new_view_id, old_view_id); |
} |
} // namespace service |