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

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

Issue 2950993003: [Chromoting] Use ProcessStatsSender in DaemonProcess (daemon process) (Closed)
Patch Set: Stop process stats when network process crashes Created 3 years, 6 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
1 // Copyright 2017 The Chromium Authors. All rights reserved. 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 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 "remoting/host/process_stats_sender.h" 5 #include "remoting/host/process_stats_sender.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "remoting/host/process_stats_agent.h" 11 #include "remoting/host/process_stats_agent.h"
12 #include "remoting/host/process_stats_util.h" 12 #include "remoting/host/process_stats_util.h"
13 13
14 namespace remoting { 14 namespace remoting {
15 15
16 ProcessStatsSender::ProcessStatsSender( 16 ProcessStatsSender::ProcessStatsSender(
17 protocol::ProcessStatsStub* host_stats_stub, 17 protocol::ProcessStatsStub* host_stats_stub,
18 base::TimeDelta interval, 18 base::TimeDelta interval,
19 std::initializer_list<ProcessStatsAgent*> agents) 19 std::initializer_list<ProcessStatsAgent*> agents)
20 : host_stats_stub_(host_stats_stub), 20 : host_stats_stub_(host_stats_stub),
21 agents_(agents), 21 agents_(agents),
22 interval_(interval),
22 thread_checker_() { 23 thread_checker_() {
23 DCHECK(thread_checker_.CalledOnValidThread()); 24 DCHECK(thread_checker_.CalledOnValidThread());
24 DCHECK(host_stats_stub_); 25 DCHECK(host_stats_stub_);
25 DCHECK(interval > base::TimeDelta()); 26 DCHECK(interval > base::TimeDelta());
26 DCHECK(!agents_.empty()); 27 DCHECK(!agents_.empty());
27 28
28 timer_.Start(FROM_HERE, interval, this, &ProcessStatsSender::ReportUsage); 29 timer_.Start(FROM_HERE, interval, this, &ProcessStatsSender::ReportUsage);
29 } 30 }
30 31
31 ProcessStatsSender::~ProcessStatsSender() { 32 ProcessStatsSender::~ProcessStatsSender() {
32 DCHECK(thread_checker_.CalledOnValidThread()); 33 DCHECK(thread_checker_.CalledOnValidThread());
33 timer_.Stop(); 34 timer_.Stop();
34 } 35 }
35 36
37 base::TimeDelta ProcessStatsSender::interval() const {
38 return interval_;
39 }
40
36 void ProcessStatsSender::ReportUsage() { 41 void ProcessStatsSender::ReportUsage() {
37 DCHECK(thread_checker_.CalledOnValidThread()); 42 DCHECK(thread_checker_.CalledOnValidThread());
38 43
39 std::vector<protocol::ProcessResourceUsage> usages; 44 std::vector<protocol::ProcessResourceUsage> usages;
40 for (auto* const agent : agents_) { 45 for (auto* const agent : agents_) {
41 DCHECK(agent); 46 DCHECK(agent);
42 protocol::ProcessResourceUsage usage = agent->GetResourceUsage(); 47 protocol::ProcessResourceUsage usage = agent->GetResourceUsage();
43 if (!IsEmptyProcessResourceUsage(usage)) { 48 if (!IsEmptyProcessResourceUsage(usage)) {
44 usages.push_back(std::move(usage)); 49 usages.push_back(std::move(usage));
45 } 50 }
46 } 51 }
47 52
48 host_stats_stub_->OnProcessStats(AggregateProcessResourceUsage(usages)); 53 host_stats_stub_->OnProcessStats(AggregateProcessResourceUsage(usages));
49 } 54 }
50 55
51 } // namespace remoting 56 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698