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

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

Issue 2775983003: [Chromoting] Retrieve process resource usage (ProcessStats) and its tests (Closed)
Patch Set: thread_checker_ should be correctly constructed Created 3 years, 7 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
« no previous file with comments | « remoting/host/process_stats_sender.h ('k') | remoting/host/process_stats_sender_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "remoting/host/process_stats_sender.h"
6
7 #include <utility>
8
9 #include "base/location.h"
10 #include "base/logging.h"
11 #include "remoting/host/process_stats_agent.h"
12 #include "remoting/host/process_stats_util.h"
13
14 namespace remoting {
15
16 ProcessStatsSender::ProcessStatsSender(
17 protocol::ProcessStatsStub* host_stats_stub,
18 base::TimeDelta interval,
19 std::initializer_list<ProcessStatsAgent*> agents)
20 : host_stats_stub_(host_stats_stub),
21 agents_(agents),
22 thread_checker_() {
23 DCHECK(thread_checker_.CalledOnValidThread());
24 DCHECK(host_stats_stub_);
25 DCHECK(!interval.is_zero());
26 DCHECK(!agents_.empty());
27
28 timer_.Start(FROM_HERE, interval, this, &ProcessStatsSender::ReportUsage);
29 }
30
31 ProcessStatsSender::~ProcessStatsSender() {
32 DCHECK(thread_checker_.CalledOnValidThread());
33 timer_.Stop();
34 }
35
36 void ProcessStatsSender::ReportUsage() {
37 DCHECK(thread_checker_.CalledOnValidThread());
38
39 std::vector<protocol::ProcessResourceUsage> usages;
40 for (auto* const agent : agents_) {
41 DCHECK(agent);
42 protocol::ProcessResourceUsage usage = agent->GetResourceUsage();
43 if (!IsEmptyProcessResourceUsage(usage)) {
44 usages.push_back(std::move(usage));
45 }
46 }
47
48 host_stats_stub_->OnProcessStats(AggregateProcessResourceUsage(usages));
49 }
50
51 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/process_stats_sender.h ('k') | remoting/host/process_stats_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698