From e6e1cad743d04f79148c92bab774fed183ff43a6 Mon Sep 17 00:00:00 2001 From: steviez Date: Tue, 11 Feb 2020 13:11:33 -0600 Subject: rfnoc: actions: Cleanup rx_event_action_info ctor Set error code member variable in rx_event_action_info constructor instead of relying on the caller to set it after object creation --- host/lib/rfnoc/actions.cpp | 12 +++++++++--- host/lib/rfnoc/radio_control_impl.cpp | 11 +++++------ 2 files changed, 14 insertions(+), 9 deletions(-) (limited to 'host/lib') diff --git a/host/lib/rfnoc/actions.cpp b/host/lib/rfnoc/actions.cpp index ecc1b3f20..3276c456c 100644 --- a/host/lib/rfnoc/actions.cpp +++ b/host/lib/rfnoc/actions.cpp @@ -51,17 +51,23 @@ stream_cmd_action_info::sptr stream_cmd_action_info::make( } /*** RX Metadata Action Info *************************************************/ -rx_event_action_info::rx_event_action_info() : action_info(ACTION_KEY_RX_EVENT) +rx_event_action_info::rx_event_action_info(uhd::rx_metadata_t::error_code_t error_code_) + : action_info(ACTION_KEY_RX_EVENT), error_code(error_code_) { // nop } -rx_event_action_info::sptr rx_event_action_info::make() +rx_event_action_info::sptr rx_event_action_info::make( + uhd::rx_metadata_t::error_code_t error_code) { struct rx_event_action_info_make_shared : public rx_event_action_info { + rx_event_action_info_make_shared(uhd::rx_metadata_t::error_code_t error_code) + : rx_event_action_info(error_code) + { + } }; - return std::make_shared(); + return std::make_shared(error_code); } /*** TX Metadata Action Info *************************************************/ diff --git a/host/lib/rfnoc/radio_control_impl.cpp b/host/lib/rfnoc/radio_control_impl.cpp index 6c7a769df..ea67d891e 100644 --- a/host/lib/rfnoc/radio_control_impl.cpp +++ b/host/lib/rfnoc/radio_control_impl.cpp @@ -966,9 +966,9 @@ void radio_control_impl::async_message_handler( switch (code) { case err_codes::ERR_RX_OVERRUN: { UHD_LOG_FASTPATH("O"); - auto rx_event_action = rx_event_action_info::make(); - rx_event_action->error_code = uhd::rx_metadata_t::ERROR_CODE_OVERFLOW; - const bool cont_mode = _last_stream_cmd.at(chan).stream_mode + auto rx_event_action = rx_event_action_info::make( + uhd::rx_metadata_t::ERROR_CODE_OVERFLOW); + const bool cont_mode = _last_stream_cmd.at(chan).stream_mode == stream_cmd_t::STREAM_MODE_START_CONTINUOUS; rx_event_action->args["cont_mode"] = std::to_string(cont_mode); RFNOC_LOG_TRACE("Posting overrun event action message."); @@ -978,9 +978,8 @@ void radio_control_impl::async_message_handler( } case err_codes::ERR_RX_LATE_CMD: UHD_LOG_FASTPATH("L"); - auto rx_event_action = rx_event_action_info::make(); - rx_event_action->error_code = - uhd::rx_metadata_t::ERROR_CODE_LATE_COMMAND; + auto rx_event_action = rx_event_action_info::make( + uhd::rx_metadata_t::ERROR_CODE_LATE_COMMAND); RFNOC_LOG_TRACE("Posting RX late command message."); post_action(res_source_info{res_source_info::OUTPUT_EDGE, chan}, rx_event_action); -- cgit v1.2.3