| 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 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 // Overridden to perform transaction-specific cleanup on commit ack from the | 130 // Overridden to perform transaction-specific cleanup on commit ack from the |
| 131 // service. | 131 // service. |
| 132 virtual void DoActionCompleted(bool success) = 0; | 132 virtual void DoActionCompleted(bool success) = 0; |
| 133 | 133 |
| 134 ViewManagerService* service() { return client_->service_; } | 134 ViewManagerService* service() { return client_->service_; } |
| 135 | 135 |
| 136 Id GetAndAdvanceNextServerChangeId() { | 136 Id GetAndAdvanceNextServerChangeId() { |
| 137 return client_->next_server_change_id_++; | 137 return client_->next_server_change_id_++; |
| 138 } | 138 } |
| 139 | 139 |
| 140 // TODO(sky): nuke this and covert all to new one, then rename |
| 141 // ActionCompletedCallbackWithErrorCode to ActionCompletedCallback. |
| 140 base::Callback<void(bool)> ActionCompletedCallback() { | 142 base::Callback<void(bool)> ActionCompletedCallback() { |
| 141 return base::Bind(&ViewManagerTransaction::OnActionCompleted, | 143 return base::Bind(&ViewManagerTransaction::OnActionCompleted, |
| 142 base::Unretained(this)); | 144 base::Unretained(this)); |
| 143 } | 145 } |
| 144 | 146 |
| 147 base::Callback<void(ErrorCode)> ActionCompletedCallbackWithErrorCode() { |
| 148 return base::Bind(&ViewManagerTransaction::OnActionCompletedWithErrorCode, |
| 149 base::Unretained(this)); |
| 150 } |
| 151 |
| 145 private: | 152 private: |
| 146 // General callback to be used for commits to the service. | 153 // General callback to be used for commits to the service. |
| 147 void OnActionCompleted(bool success) { | 154 void OnActionCompleted(bool success) { |
| 148 DoActionCompleted(success); | 155 DoActionCompleted(success); |
| 149 client_->RemoveFromPendingQueue(this); | 156 client_->RemoveFromPendingQueue(this); |
| 150 } | 157 } |
| 151 | 158 |
| 159 void OnActionCompletedWithErrorCode(ErrorCode error_code) { |
| 160 DoActionCompleted(error_code == ERROR_CODE_NONE); |
| 161 client_->RemoveFromPendingQueue(this); |
| 162 } |
| 163 |
| 152 bool committed_; | 164 bool committed_; |
| 153 ViewManagerClientImpl* client_; | 165 ViewManagerClientImpl* client_; |
| 154 | 166 |
| 155 DISALLOW_COPY_AND_ASSIGN(ViewManagerTransaction); | 167 DISALLOW_COPY_AND_ASSIGN(ViewManagerTransaction); |
| 156 }; | 168 }; |
| 157 | 169 |
| 158 class CreateViewTransaction : public ViewManagerTransaction { | 170 class CreateViewTransaction : public ViewManagerTransaction { |
| 159 public: | 171 public: |
| 160 CreateViewTransaction(Id view_id, ViewManagerClientImpl* client) | 172 CreateViewTransaction(Id view_id, ViewManagerClientImpl* client) |
| 161 : ViewManagerTransaction(client), | 173 : ViewManagerTransaction(client), |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 class CreateNodeTransaction : public ViewManagerTransaction { | 214 class CreateNodeTransaction : public ViewManagerTransaction { |
| 203 public: | 215 public: |
| 204 CreateNodeTransaction(Id node_id, ViewManagerClientImpl* client) | 216 CreateNodeTransaction(Id node_id, ViewManagerClientImpl* client) |
| 205 : ViewManagerTransaction(client), | 217 : ViewManagerTransaction(client), |
| 206 node_id_(node_id) {} | 218 node_id_(node_id) {} |
| 207 virtual ~CreateNodeTransaction() {} | 219 virtual ~CreateNodeTransaction() {} |
| 208 | 220 |
| 209 private: | 221 private: |
| 210 // Overridden from ViewManagerTransaction: | 222 // Overridden from ViewManagerTransaction: |
| 211 virtual void DoCommit() OVERRIDE { | 223 virtual void DoCommit() OVERRIDE { |
| 212 service()->CreateNode(node_id_, ActionCompletedCallback()); | 224 service()->CreateNode(node_id_, ActionCompletedCallbackWithErrorCode()); |
| 213 } | 225 } |
| 214 virtual void DoActionCompleted(bool success) OVERRIDE { | 226 virtual void DoActionCompleted(bool success) OVERRIDE { |
| 215 // TODO(beng): Failure means we tried to create with an extant id for this | 227 // TODO(beng): Failure means we tried to create with an extant id for this |
| 216 // connection. It also could mean we tried to do something | 228 // connection. It also could mean we tried to do something |
| 217 // invalid, or we tried applying a change out of order. Figure | 229 // invalid, or we tried applying a change out of order. Figure |
| 218 // out what to do. | 230 // out what to do. |
| 219 DCHECK(success); | 231 DCHECK(success); |
| 220 } | 232 } |
| 221 | 233 |
| 222 const Id node_id_; | 234 const Id node_id_; |
| (...skipping 675 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 898 | 910 |
| 899 // static | 911 // static |
| 900 void ViewManager::ConfigureIncomingConnection( | 912 void ViewManager::ConfigureIncomingConnection( |
| 901 ApplicationConnection* connection, | 913 ApplicationConnection* connection, |
| 902 ViewManagerDelegate* delegate) { | 914 ViewManagerDelegate* delegate) { |
| 903 connection->AddService<ViewManagerClientImpl>(delegate); | 915 connection->AddService<ViewManagerClientImpl>(delegate); |
| 904 } | 916 } |
| 905 | 917 |
| 906 } // namespace view_manager | 918 } // namespace view_manager |
| 907 } // namespace mojo | 919 } // namespace mojo |
| OLD | NEW |