blob: c89bebd52a1688559ecebd323db015ed42875636 [file] [log] [blame]
Austin Schuhe4106142019-12-01 18:19:53 -08001#include "aos/events/timing_statistics.h"
2
3#include "aos/events/event_loop_generated.h"
4#include "glog/logging.h"
5
6namespace aos {
7namespace internal {
8
9void RawFetcherTiming::set_timing_report(timing::Fetcher *new_fetcher) {
Austin Schuhe4106142019-12-01 18:19:53 -080010 fetcher = new_fetcher;
Brian Silvermanbf889922021-11-10 12:41:57 -080011 if (!new_fetcher) {
12 latency.set_statistic(nullptr);
13 } else {
14 latency.set_statistic(fetcher->mutable_latency());
15 }
Austin Schuhe4106142019-12-01 18:19:53 -080016}
17
18void RawFetcherTiming::ResetTimingReport() {
Brian Silvermanbf889922021-11-10 12:41:57 -080019 if (!fetcher) {
20 return;
21 }
22
Austin Schuhe4106142019-12-01 18:19:53 -080023 latency.Reset();
24 fetcher->mutate_count(0);
25}
26
27void RawSenderTiming::set_timing_report(timing::Sender *new_sender) {
Austin Schuhe4106142019-12-01 18:19:53 -080028 sender = new_sender;
Brian Silvermanbf889922021-11-10 12:41:57 -080029 if (!sender) {
30 size.set_statistic(nullptr);
James Kuszmaulcc94ed42022-08-24 11:36:17 -070031 error_counter.InvalidateBuffer();
Brian Silvermanbf889922021-11-10 12:41:57 -080032 } else {
33 size.set_statistic(sender->mutable_size());
James Kuszmaulcc94ed42022-08-24 11:36:17 -070034 error_counter.set_mutable_vector(sender->mutable_error_counts());
Brian Silvermanbf889922021-11-10 12:41:57 -080035 }
Austin Schuhe4106142019-12-01 18:19:53 -080036}
37
38void RawSenderTiming::ResetTimingReport() {
Brian Silvermanbf889922021-11-10 12:41:57 -080039 if (!sender) {
40 return;
41 }
42
Austin Schuhe4106142019-12-01 18:19:53 -080043 size.Reset();
44 sender->mutate_count(0);
James Kuszmaulcc94ed42022-08-24 11:36:17 -070045 error_counter.ResetCounts();
James Kuszmaul78514332022-04-06 15:08:34 -070046}
47
48void RawSenderTiming::IncrementError(timing::SendError error) {
49 if (!sender) {
50 return;
51 }
James Kuszmaulcc94ed42022-08-24 11:36:17 -070052 error_counter.IncrementError(error);
Austin Schuhe4106142019-12-01 18:19:53 -080053}
54
55void TimerTiming::set_timing_report(timing::Timer *new_timer) {
Austin Schuhe4106142019-12-01 18:19:53 -080056 timer = new_timer;
Brian Silvermanbf889922021-11-10 12:41:57 -080057 if (!timer) {
58 wakeup_latency.set_statistic(nullptr);
59 handler_time.set_statistic(nullptr);
60 } else {
61 wakeup_latency.set_statistic(timer->mutable_wakeup_latency());
62 handler_time.set_statistic(timer->mutable_handler_time());
63 }
Austin Schuhe4106142019-12-01 18:19:53 -080064}
65
66void TimerTiming::ResetTimingReport() {
Brian Silvermanbf889922021-11-10 12:41:57 -080067 if (!timer) {
68 return;
69 }
70
Austin Schuhe4106142019-12-01 18:19:53 -080071 wakeup_latency.Reset();
72 handler_time.Reset();
73 timer->mutate_count(0);
74}
75
76} // namespace internal
77} // namespace aos