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

Side by Side Diff: remoting/host/host_stats.cc

Issue 2775983003: [Chromoting] Retrieve process resource usage (ProcessStats) and its tests (Closed)
Patch Set: Created 3 years, 9 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
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/bind.h"
6 #include "base/location.h"
7 #include "base/logging.h"
8 #include "base/message_loop/message_loop.h"
9 #include "remoting/host/host_stats.h"
10
11 namespace remoting {
12 namespace host {
13
14 HostStats::HostStats(HostStatsStub* host_stats_stub, base::TimeDelta interval)
15 : host_stats_stub_(host_stats_stub),
16 interval_(interval),
17 metrics_(base::ProcessMetrics::CreateCurrentProcessMetrics()),
18 weak_factory_(this) {
19 DCHECK(host_stats_stub_);
20 DCHECK(!interval_.is_zero());
21
22 PostTask();
23 }
24
25 HostStats::~HostStats() = default;
26
27 void HostStats::PostTask() {
28 base::MessageLoop::current()->task_runner()->PostDelayedTask(FROM_HERE,
Sergey Ulanov 2017/03/27 19:43:20 I think it would be better to use base::RepeatingT
Hzj_jie 2017/03/30 01:09:45 Done.
29 base::Bind(&HostStats::ReportUsage, weak_factory_.GetWeakPtr()),
30 interval_);
31 }
32
33 void HostStats::ReportUsage() {
34 ProcessResourceUsage current;
35 current.processor_usage = metrics_->GetPlatformIndependentCPUUsage();
36 current.working_set_size = metrics_->GetWorkingSetSize();
37 current.pagefile_size = metrics_->GetPagefileUsage();
38 {
39 base::AutoLock lock(lock_);
Sergey Ulanov 2017/03/27 19:43:20 Why do we need lock?
Hzj_jie 2017/03/30 01:09:45 I suppose HostStats::OnHostStats() should be calle
40 current.Append(received_usage_);
41 }
42 host_stats_stub_->OnHostStats(current);
43
44 PostTask();
45 }
46
47 void HostStats::OnHostStats(const ProcessResourceUsage& usage) {
48 base::AutoLock lock(lock_);
49 received_usage_ = usage;
50 }
51
52 } // namespace host
53 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698