43 {
44 auto manager = MonitorManager::Instance();
45 auto* component = apollo::common::util::FindOrNull(
46 *manager->GetStatus()->mutable_components(),
47 FLAGS_smart_recorder_component_name);
48 if (component == nullptr) {
49
50 return;
51 }
52
53 static auto reader =
54 manager->CreateReader<SmartRecorderStatus>(FLAGS_recorder_status_topic);
55 reader->Observe();
56 const auto status = reader->GetLatestObserved();
57
58 ComponentStatus* component_status = component->mutable_other_status();
59 component_status->clear_status();
60 if (status == nullptr) {
62 "No SmartRecorderStatus received",
63 component_status);
64 return;
65 }
66
67
68
69 switch (status->recording_state()) {
70 case RecordingState::RECORDING:
72 break;
73 case RecordingState::TERMINATING:
75 ComponentStatus::WARN,
76 absl::StrCat("WARNNING: ", status->state_message()),
77 component_status);
78 break;
79 case RecordingState::STOPPED:
81 ComponentStatus::OK,
82 absl::StrCat("STOPPED: ", status->state_message()), component_status);
83 break;
84 default:
85 AFATAL <<
"Unknown recording status: " << status->recording_state();
86 break;
87 }
88}
static void EscalateStatus(const ComponentStatus::Status new_status, const std::string &message, ComponentStatus *current_status)