| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/caps/generate_state_json.h" | 5 #include "chrome/browser/caps/generate_state_json.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <string> | 10 #include <string> |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 int InMBFromB(const TaskManagerModel* model, MemoryFn2 mfn, int index) { | 53 int InMBFromB(const TaskManagerModel* model, MemoryFn2 mfn, int index) { |
| 54 size_t result_in_bytes = 0; | 54 size_t result_in_bytes = 0; |
| 55 bool ignored; | 55 bool ignored; |
| 56 bool res = (model->*mfn)(index, &result_in_bytes, &ignored); | 56 bool res = (model->*mfn)(index, &result_in_bytes, &ignored); |
| 57 return res ? InMBFromB(result_in_bytes) : 0; | 57 return res ? InMBFromB(result_in_bytes) : 0; |
| 58 } | 58 } |
| 59 | 59 |
| 60 class TaskManagerDataDumper : | 60 class TaskManagerDataDumper : |
| 61 public base::RefCountedThreadSafe<TaskManagerDataDumper> { | 61 public base::RefCountedThreadSafe<TaskManagerDataDumper> { |
| 62 public: | 62 public: |
| 63 TaskManagerDataDumper(scoped_refptr<TaskManagerModel> model, | 63 TaskManagerDataDumper(scoped_refptr<TaskManagerModel> model, base::File file) |
| 64 base::File file) | 64 : model_(model), file_(std::move(file)) { |
| 65 : model_(model), file_(file.Pass()) { | |
| 66 model_->RegisterOnDataReadyCallback( | 65 model_->RegisterOnDataReadyCallback( |
| 67 base::Bind(&TaskManagerDataDumper::OnDataReady, this)); | 66 base::Bind(&TaskManagerDataDumper::OnDataReady, this)); |
| 68 model->StartListening(); | 67 model->StartListening(); |
| 69 // Note that GenerateStateJSON 'new's this object which is reference | 68 // Note that GenerateStateJSON 'new's this object which is reference |
| 70 // counted. | 69 // counted. |
| 71 AddRef(); | 70 AddRef(); |
| 72 } | 71 } |
| 73 | 72 |
| 74 private: | 73 private: |
| 75 friend class base::RefCountedThreadSafe<TaskManagerDataDumper>; | 74 friend class base::RefCountedThreadSafe<TaskManagerDataDumper>; |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 scoped_refptr<TaskManagerModel> model_; | 195 scoped_refptr<TaskManagerModel> model_; |
| 197 base::File file_; | 196 base::File file_; |
| 198 }; | 197 }; |
| 199 | 198 |
| 200 } // namespace | 199 } // namespace |
| 201 | 200 |
| 202 namespace caps { | 201 namespace caps { |
| 203 | 202 |
| 204 void GenerateStateJSON( | 203 void GenerateStateJSON( |
| 205 scoped_refptr<TaskManagerModel> model, base::File file) { | 204 scoped_refptr<TaskManagerModel> model, base::File file) { |
| 206 new TaskManagerDataDumper(model, file.Pass()); | 205 new TaskManagerDataDumper(model, std::move(file)); |
| 207 } | 206 } |
| 208 | 207 |
| 209 } | 208 } |
| OLD | NEW |