15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// ChromotingStats defines a bundle of performance counters and statistics
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// for chromoting.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef REMOTING_CLIENT_CHROMOTING_STATS_H_
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define REMOTING_CLIENT_CHROMOTING_STATS_H_
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/base/rate_counter.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "remoting/base/running_average.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace remoting {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ChromotingStats {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ChromotingStats();
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~ChromotingStats();
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RateCounter* video_bandwidth() { return &video_bandwidth_; }
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RateCounter* video_frame_rate() { return &video_frame_rate_; }
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage* video_capture_ms() { return &video_capture_ms_; }
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage* video_encode_ms() { return &video_encode_ms_; }
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage* video_decode_ms() { return &video_decode_ms_; }
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage* video_paint_ms() { return &video_paint_ms_; }
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage* round_trip_ms() { return &round_trip_ms_; }
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RateCounter video_bandwidth_;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RateCounter video_frame_rate_;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage video_capture_ms_;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage video_encode_ms_;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage video_decode_ms_;
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage video_paint_ms_;
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RunningAverage round_trip_ms_;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ChromotingStats);
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace remoting
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // REMOTING_CLIENT_CHROMOTING_STATS_H_
44