Tyler Chatow | 67ddb03 | 2020-01-12 14:30:04 -0800 | [diff] [blame] | 1 | #include "aos/events/aos_logging.h" |
| 2 | |
| 3 | namespace aos { |
| 4 | |
Austin Schuh | ad9e5eb | 2021-11-19 20:33:55 -0800 | [diff] [blame] | 5 | void AosLogToFbs::Initialize(const std::string *name, |
| 6 | Sender<logging::LogMessageFbs> log_sender) { |
Tyler Chatow | 67ddb03 | 2020-01-12 14:30:04 -0800 | [diff] [blame] | 7 | log_sender_ = std::move(log_sender); |
| 8 | if (log_sender_) { |
Austin Schuh | a0c41ba | 2020-09-10 22:59:14 -0700 | [diff] [blame] | 9 | implementation_ = std::make_shared<logging::CallbackLogImplementation>( |
Tyler Chatow | 67ddb03 | 2020-01-12 14:30:04 -0800 | [diff] [blame] | 10 | [this](const logging::LogMessage &message_data) { |
| 11 | aos::Sender<logging::LogMessageFbs>::Builder message = |
| 12 | log_sender_.MakeBuilder(); |
| 13 | auto message_str = message.fbb()->CreateString( |
| 14 | message_data.message, message_data.message_length); |
| 15 | auto name_str = message.fbb()->CreateString(message_data.name, |
| 16 | message_data.name_length); |
| 17 | |
| 18 | ::aos::logging::LogMessageFbs::Builder builder = |
| 19 | message.MakeBuilder<::aos::logging::LogMessageFbs>(); |
| 20 | builder.add_message(message_str); |
| 21 | builder.add_level( |
| 22 | static_cast<::aos::logging::Level>(message_data.level)); |
Het Satasiya | 30b45aa | 2020-09-12 16:45:46 -0700 | [diff] [blame] | 23 | builder.add_source_pid(message_data.source); |
Tyler Chatow | 67ddb03 | 2020-01-12 14:30:04 -0800 | [diff] [blame] | 24 | builder.add_name(name_str); |
| 25 | |
| 26 | message.Send(builder.Finish()); |
Austin Schuh | ad9e5eb | 2021-11-19 20:33:55 -0800 | [diff] [blame] | 27 | }, |
| 28 | name); |
Tyler Chatow | 67ddb03 | 2020-01-12 14:30:04 -0800 | [diff] [blame] | 29 | } |
| 30 | } |
| 31 | |
| 32 | } // namespace aos |