blob: caf71daa1ac458d88d2082bb153dc2c1b241c8ae [file] [log] [blame]
Austin Schuhe4106142019-12-01 18:19:53 -08001#include "aos/events/timing_statistics.h"
2
Austin Schuhe4106142019-12-01 18:19:53 -08003#include "glog/logging.h"
4
Philipp Schrader790cb542023-07-05 21:06:52 -07005#include "aos/events/event_loop_generated.h"
6
Austin Schuhe4106142019-12-01 18:19:53 -08007namespace aos {
8namespace internal {
9
10void RawFetcherTiming::set_timing_report(timing::Fetcher *new_fetcher) {
Austin Schuhe4106142019-12-01 18:19:53 -080011 fetcher = new_fetcher;
Brian Silvermanbf889922021-11-10 12:41:57 -080012 if (!new_fetcher) {
13 latency.set_statistic(nullptr);
14 } else {
15 latency.set_statistic(fetcher->mutable_latency());
16 }
Austin Schuhe4106142019-12-01 18:19:53 -080017}
18
19void RawFetcherTiming::ResetTimingReport() {
Brian Silvermanbf889922021-11-10 12:41:57 -080020 if (!fetcher) {
21 return;
22 }
23
Austin Schuhe4106142019-12-01 18:19:53 -080024 latency.Reset();
25 fetcher->mutate_count(0);
26}
27
28void RawSenderTiming::set_timing_report(timing::Sender *new_sender) {
Austin Schuhe4106142019-12-01 18:19:53 -080029 sender = new_sender;
Brian Silvermanbf889922021-11-10 12:41:57 -080030 if (!sender) {
31 size.set_statistic(nullptr);
James Kuszmaulcc94ed42022-08-24 11:36:17 -070032 error_counter.InvalidateBuffer();
Brian Silvermanbf889922021-11-10 12:41:57 -080033 } else {
34 size.set_statistic(sender->mutable_size());
James Kuszmaulcc94ed42022-08-24 11:36:17 -070035 error_counter.set_mutable_vector(sender->mutable_error_counts());
Brian Silvermanbf889922021-11-10 12:41:57 -080036 }
Austin Schuhe4106142019-12-01 18:19:53 -080037}
38
39void RawSenderTiming::ResetTimingReport() {
Brian Silvermanbf889922021-11-10 12:41:57 -080040 if (!sender) {
41 return;
42 }
43
Austin Schuhe4106142019-12-01 18:19:53 -080044 size.Reset();
45 sender->mutate_count(0);
James Kuszmaulcc94ed42022-08-24 11:36:17 -070046 error_counter.ResetCounts();
James Kuszmaul78514332022-04-06 15:08:34 -070047}
48
49void RawSenderTiming::IncrementError(timing::SendError error) {
50 if (!sender) {
51 return;
52 }
James Kuszmaulcc94ed42022-08-24 11:36:17 -070053 error_counter.IncrementError(error);
Austin Schuhe4106142019-12-01 18:19:53 -080054}
55
56void TimerTiming::set_timing_report(timing::Timer *new_timer) {
Austin Schuhe4106142019-12-01 18:19:53 -080057 timer = new_timer;
Brian Silvermanbf889922021-11-10 12:41:57 -080058 if (!timer) {
59 wakeup_latency.set_statistic(nullptr);
60 handler_time.set_statistic(nullptr);
61 } else {
62 wakeup_latency.set_statistic(timer->mutable_wakeup_latency());
63 handler_time.set_statistic(timer->mutable_handler_time());
64 }
Austin Schuhe4106142019-12-01 18:19:53 -080065}
66
67void TimerTiming::ResetTimingReport() {
Brian Silvermanbf889922021-11-10 12:41:57 -080068 if (!timer) {
69 return;
70 }
71
Austin Schuhe4106142019-12-01 18:19:53 -080072 wakeup_latency.Reset();
73 handler_time.Reset();
74 timer->mutate_count(0);
75}
76
77} // namespace internal
78} // namespace aos