diff --git a/Development/nmos/control_protocol_utils.cpp b/Development/nmos/control_protocol_utils.cpp index 0bac78f61..2346024fe 100644 --- a/Development/nmos/control_protocol_utils.cpp +++ b/Development/nmos/control_protocol_utils.cpp @@ -22,14 +22,6 @@ namespace nmos // Internal monitor helpers (not part of the public header; declared here for out-of-line definitions below) bool set_monitor_status_internal(resources& resources, nc_oid oid, int status, const utility::string_t& status_message, const experimental::monitor_domain& domain, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate); bool update_monitor_overall_status(resources& resources, nc_oid oid, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate); - bool set_receiver_monitor_link_status_internal(resources& resources, nc_oid oid, nmos::nc_link_status::status link_status, const utility::string_t& link_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_receiver_monitor_connection_status_internal(resources& resources, nc_oid oid, nmos::nc_connection_status::status connection_status, const utility::string_t& connection_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_receiver_monitor_external_synchronization_status_internal(resources& resources, nc_oid oid, nmos::nc_synchronization_status::status external_synchronization_status, const utility::string_t& external_synchronization_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_receiver_monitor_stream_status_internal(resources& resources, nc_oid oid, nmos::nc_stream_status::status stream_status, const utility::string_t& stream_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_sender_monitor_link_status_internal(resources& resources, nc_oid oid, nmos::nc_link_status::status link_status, const utility::string_t& link_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_sender_monitor_transmission_status_internal(resources& resources, nc_oid oid, nmos::nc_transmission_status::status transmission_status, const utility::string_t& transmission_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_sender_monitor_external_synchronization_status_internal(resources& resources, nc_oid oid, nmos::nc_synchronization_status::status external_synchronization_status, const utility::string_t& external_synchronization_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_sender_monitor_essence_status_internal(resources& resources, nc_oid oid, nmos::nc_essence_status::status essence_status, const utility::string_t& essence_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); bool is_control_class(const nc_class_id& control_class_id, const nc_class_id& class_id_) { @@ -1207,19 +1199,6 @@ namespace nmos gate); } - // Set link status and link status message - bool details::set_receiver_monitor_link_status_internal(resources& resources, nc_oid oid, nmos::nc_link_status::status link_status, const utility::string_t& link_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate) - { - return nc::details::set_monitor_status_internal(resources, oid, link_status, link_status_message, - nc_receiver_monitor_link_status_property_id, - nc_receiver_monitor_link_status_message_property_id, - nc_receiver_monitor_link_status_transition_counter_property_id, - nmos::fields::nc::link_status_pending_received_time, - get_control_protocol_class_descriptor, - {}, - gate); - } - bool set_receiver_monitor_link_status(resources& resources, nc_oid oid, nmos::nc_link_status::status link_status, const utility::string_t& link_status_message, monitor_status_pending_handler monitor_status_pending, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate) { const auto now_time = std::chrono::duration_cast(std::chrono::steady_clock::now().time_since_epoch()).count(); @@ -1238,18 +1217,6 @@ namespace nmos gate); } - bool details::set_receiver_monitor_connection_status_internal(resources& resources, nc_oid oid, nmos::nc_connection_status::status connection_status, const utility::string_t& connection_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate) - { - return nc::details::set_monitor_status_internal(resources, oid, connection_status, connection_status_message, - nc_receiver_monitor_connection_status_property_id, - nc_receiver_monitor_connection_status_message_property_id, - nc_receiver_monitor_connection_status_transition_counter_property_id, - nmos::fields::nc::connection_status_pending_received_time, - get_control_protocol_class_descriptor, - {}, - gate); - } - bool set_receiver_monitor_connection_status(resources& resources, nc_oid oid, nmos::nc_connection_status::status connection_status, const utility::string_t& connection_status_message, monitor_status_pending_handler monitor_status_pending, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate) { const auto now_time = std::chrono::duration_cast(std::chrono::steady_clock::now().time_since_epoch()).count(); @@ -1268,19 +1235,6 @@ namespace nmos gate); } - // Set external synchronization status and external synchronization status message - bool details::set_receiver_monitor_external_synchronization_status_internal(resources& resources, nc_oid oid, nmos::nc_synchronization_status::status external_synchronization_status, const utility::string_t& external_synchronization_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate) - { - return nc::details::set_monitor_status_internal(resources, oid, external_synchronization_status, external_synchronization_status_message, - nc_receiver_monitor_external_synchronization_status_property_id, - nc_receiver_monitor_external_synchronization_status_message_property_id, - nc_receiver_monitor_external_synchronization_status_transition_counter_property_id, - nmos::fields::nc::external_synchronization_status_pending_received_time, - get_control_protocol_class_descriptor, - {}, - gate); - } - bool set_receiver_monitor_external_synchronization_status(resources& resources, nc_oid oid, nmos::nc_synchronization_status::status external_synchronization_status, const utility::string_t& external_synchronization_status_message, monitor_status_pending_handler monitor_status_pending, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate) { const auto now_time = std::chrono::duration_cast(std::chrono::steady_clock::now().time_since_epoch()).count(); @@ -1299,19 +1253,6 @@ namespace nmos gate); } - // Set stream status and stream status message - bool details::set_receiver_monitor_stream_status_internal(resources& resources, nc_oid oid, nmos::nc_stream_status::status stream_status, const utility::string_t& stream_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate) - { - return nc::details::set_monitor_status_internal(resources, oid, stream_status, stream_status_message, - nc_receiver_monitor_stream_status_property_id, - nc_receiver_monitor_stream_status_message_property_id, - nc_receiver_monitor_stream_status_transition_counter_property_id, - nmos::fields::nc::stream_status_pending_received_time, - get_control_protocol_class_descriptor, - {}, - gate); - } - bool set_receiver_monitor_stream_status(resources& resources, nc_oid oid, nmos::nc_stream_status::status stream_status, const utility::string_t& stream_status_message, monitor_status_pending_handler monitor_status_pending, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate) { const auto now_time = std::chrono::duration_cast(std::chrono::steady_clock::now().time_since_epoch()).count(); @@ -1427,18 +1368,6 @@ namespace nmos return false; } - // Set link status and link status message - bool details::set_sender_monitor_link_status_internal(resources& resources, nc_oid oid, nmos::nc_link_status::status link_status, const utility::string_t& link_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate) - { - return nc::details::set_monitor_status_internal(resources, oid, link_status, link_status_message, - nc_sender_monitor_link_status_property_id, - nc_sender_monitor_link_status_message_property_id, - nc_sender_monitor_link_status_transition_counter_property_id, - nmos::fields::nc::link_status_pending_received_time, - get_control_protocol_class_descriptor, - {}, - gate); - } // Set link status and status message and apply status reporting delay bool set_sender_monitor_link_status(resources& resources, nc_oid oid, nmos::nc_link_status::status link_status, const utility::string_t& link_status_message, monitor_status_pending_handler monitor_status_pending, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate) { @@ -1458,18 +1387,6 @@ namespace nmos gate); } - // Set transmission status and transmission status message - bool details::set_sender_monitor_transmission_status_internal(resources& resources, nc_oid oid, nmos::nc_transmission_status::status transmission_status, const utility::string_t& transmission_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate) - { - return nc::details::set_monitor_status_internal(resources, oid, transmission_status, transmission_status_message, - nc_sender_monitor_transmission_status_property_id, - nc_sender_monitor_transmission_status_message_property_id, - nc_sender_monitor_transmission_status_transition_counter_property_id, - nmos::fields::nc::connection_status_pending_received_time, - get_control_protocol_class_descriptor, - {}, - gate); - } // Set transmission status and status message and apply status reporting delay bool set_sender_monitor_transmission_status(resources& resources, nc_oid oid, nmos::nc_transmission_status::status transmission_status, const utility::string_t& transmission_status_message, monitor_status_pending_handler monitor_status_pending, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate) { @@ -1489,18 +1406,6 @@ namespace nmos gate); } - // Set external synchronization status and external synchronization status message - bool details::set_sender_monitor_external_synchronization_status_internal(resources& resources, nc_oid oid, nmos::nc_synchronization_status::status external_synchronization_status, const utility::string_t& external_synchronization_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate) - { - return nc::details::set_monitor_status_internal(resources, oid, external_synchronization_status, external_synchronization_status_message, - nc_sender_monitor_external_synchronization_status_property_id, - nc_sender_monitor_external_synchronization_status_message_property_id, - nc_sender_monitor_external_synchronization_status_transition_counter_property_id, - nmos::fields::nc::external_synchronization_status_pending_received_time, - get_control_protocol_class_descriptor, - {}, - gate); - } // Set external synchronization status and status message and apply status reporting delay bool set_sender_monitor_external_synchronization_status(resources& resources, nc_oid oid, nmos::nc_synchronization_status::status external_synchronization_status, const utility::string_t& external_synchronization_status_message, monitor_status_pending_handler monitor_status_pending, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate) { @@ -1520,18 +1425,6 @@ namespace nmos gate); } - // Set essence status and stream status message - bool details::set_sender_monitor_essence_status_internal(resources& resources, nc_oid oid, nmos::nc_essence_status::status essence_status, const utility::string_t& essence_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate) - { - return nc::details::set_monitor_status_internal(resources, oid, essence_status, essence_status_message, - nc_sender_monitor_essence_status_property_id, - nc_sender_monitor_essence_status_message_property_id, - nc_sender_monitor_essence_status_transition_counter_property_id, - nmos::fields::nc::stream_status_pending_received_time, - get_control_protocol_class_descriptor, - {}, - gate); - } // Set essence status and status message and apply status reporting delay bool set_sender_monitor_essence_status(resources& resources, nc_oid oid, nmos::nc_essence_status::status essence_status, const utility::string_t& essence_status_message, monitor_status_pending_handler monitor_status_pending, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate) { diff --git a/Development/nmos/test/bcp_008_test.cpp b/Development/nmos/test/bcp_008_test.cpp index c61fbc34f..90975b315 100644 --- a/Development/nmos/test/bcp_008_test.cpp +++ b/Development/nmos/test/bcp_008_test.cpp @@ -18,7 +18,7 @@ namespace nmos namespace details { // Internal helper under test; kept out of the public header - bool set_receiver_monitor_stream_status_internal(resources& resources, nc_oid oid, nmos::nc_stream_status::status stream_status, const utility::string_t& stream_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); + bool set_monitor_status_internal(resources& resources, nc_oid oid, int status, const utility::string_t& status_message, const experimental::monitor_domain& domain, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate); } } } @@ -540,10 +540,11 @@ BST_TEST_CASE(testStatusTransitionWithinReportDelay) // unhealthy (3) -> { healthy (1) -> unhealthy (3) : within the 3 second status reporting delay } // Step 1: Set initial status to unhealthy (3) - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_stream_status_internal(control_protocol_resources, monitor_oid, + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(control_protocol_resources, monitor_oid, nmos::nc_stream_status::status::unhealthy, U("Initial unhealthy status"), - get_control_protocol_class_descriptor, gate)); + nmos::experimental::make_receiver_monitor_domains().at(1), + get_control_protocol_class_descriptor, {}, gate)); // Verify initial status is unhealthy auto current_status = nmos::nc::get_property(control_protocol_resources, monitor_oid, diff --git a/Development/nmos/test/control_protocol_utils_test.cpp b/Development/nmos/test/control_protocol_utils_test.cpp index e1fa1cc8c..da123acbe 100644 --- a/Development/nmos/test/control_protocol_utils_test.cpp +++ b/Development/nmos/test/control_protocol_utils_test.cpp @@ -35,14 +35,6 @@ namespace nmos get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, get_monitor_domains_handler get_monitor_domains, slog::base_gate& gate); - bool set_receiver_monitor_link_status_internal(resources& resources, nc_oid oid, nmos::nc_link_status::status link_status, const utility::string_t& link_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_receiver_monitor_connection_status_internal(resources& resources, nc_oid oid, nmos::nc_connection_status::status connection_status, const utility::string_t& connection_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_receiver_monitor_external_synchronization_status_internal(resources& resources, nc_oid oid, nmos::nc_synchronization_status::status external_synchronization_status, const utility::string_t& external_synchronization_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_receiver_monitor_stream_status_internal(resources& resources, nc_oid oid, nmos::nc_stream_status::status stream_status, const utility::string_t& stream_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_sender_monitor_link_status_internal(resources& resources, nc_oid oid, nmos::nc_link_status::status link_status, const utility::string_t& link_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_sender_monitor_transmission_status_internal(resources& resources, nc_oid oid, nmos::nc_transmission_status::status transmission_status, const utility::string_t& transmission_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_sender_monitor_external_synchronization_status_internal(resources& resources, nc_oid oid, nmos::nc_synchronization_status::status external_synchronization_status, const utility::string_t& external_synchronization_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); - bool set_sender_monitor_essence_status_internal(resources& resources, nc_oid oid, nmos::nc_essence_status::status essence_status, const utility::string_t& essence_status_message, get_control_protocol_class_descriptor_handler get_control_protocol_class_descriptor, slog::base_gate& gate); } } } @@ -117,6 +109,11 @@ BST_TEST_CASE(testSetReceiverMonitorStatuses) insert_resource(resources, std::move(root_block)); insert_resource(resources, std::move(class_manager)); insert_resource(resources, std::move(monitor)); + const auto receiver_monitor_domains = nmos::experimental::make_receiver_monitor_domains(); + const auto& receiver_external_synchronization_status_domain = receiver_monitor_domains.at(0); + const auto& receiver_stream_status_domain = receiver_monitor_domains.at(1); + const auto& receiver_connection_status_domain = receiver_monitor_domains.at(2); + const auto& receiver_link_status_domain = receiver_monitor_domains.at(3); { auto link_status = nmos::nc_link_status::status::all_up; @@ -132,10 +129,10 @@ BST_TEST_CASE(testSetReceiverMonitorStatuses) auto stream_status_message = U("Stream status healthy"); auto expected_stream_status_transition_counter = 0; - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_link_status_internal(resources, monitor_oid, link_status, link_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_connection_status_internal(resources, monitor_oid, connection_status, connection_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_external_synchronization_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_stream_status_internal(resources, monitor_oid, stream_status, stream_status_message, get_control_protocol_class_descriptor, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, link_status, link_status_message, receiver_link_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, connection_status, connection_status_message, receiver_connection_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, receiver_external_synchronization_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, stream_status, stream_status_message, receiver_stream_status_domain, get_control_protocol_class_descriptor, {}, gate)); auto actual_link_status = nmos::nc::get_property(resources, monitor_oid, nmos::nc_receiver_monitor_link_status_property_id, get_control_protocol_class_descriptor, gate); BST_CHECK_EQUAL(link_status, actual_link_status.as_integer()); @@ -179,10 +176,10 @@ BST_TEST_CASE(testSetReceiverMonitorStatuses) auto stream_status_message = U("Stream status healthy"); auto expected_stream_status_transition_counter = 0; - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_link_status_internal(resources, monitor_oid, link_status, link_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_connection_status_internal(resources, monitor_oid, connection_status, connection_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_external_synchronization_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_stream_status_internal(resources, monitor_oid, stream_status, stream_status_message, get_control_protocol_class_descriptor, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, link_status, link_status_message, receiver_link_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, connection_status, connection_status_message, receiver_connection_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, receiver_external_synchronization_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, stream_status, stream_status_message, receiver_stream_status_domain, get_control_protocol_class_descriptor, {}, gate)); auto actual_link_status = nmos::nc::get_property(resources, monitor_oid, nmos::nc_receiver_monitor_link_status_property_id, get_control_protocol_class_descriptor, gate); BST_CHECK_EQUAL(link_status, actual_link_status.as_integer()); @@ -226,10 +223,10 @@ BST_TEST_CASE(testSetReceiverMonitorStatuses) auto stream_status_message = U("Stream status healthy"); auto expected_stream_status_transition_counter = 1; - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_link_status_internal(resources, monitor_oid, link_status, link_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_connection_status_internal(resources, monitor_oid, connection_status, connection_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_external_synchronization_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_stream_status_internal(resources, monitor_oid, stream_status, stream_status_message, get_control_protocol_class_descriptor, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, link_status, link_status_message, receiver_link_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, connection_status, connection_status_message, receiver_connection_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, receiver_external_synchronization_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, stream_status, stream_status_message, receiver_stream_status_domain, get_control_protocol_class_descriptor, {}, gate)); auto actual_link_status = nmos::nc::get_property(resources, monitor_oid, nmos::nc_receiver_monitor_link_status_property_id, get_control_protocol_class_descriptor, gate); BST_CHECK_EQUAL(link_status, actual_link_status.as_integer()); @@ -273,10 +270,10 @@ BST_TEST_CASE(testSetReceiverMonitorStatuses) auto stream_status_message = U("Stream status healthy"); auto expected_stream_status_transition_counter = 1; - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_link_status_internal(resources, monitor_oid, link_status, link_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_connection_status_internal(resources, monitor_oid, connection_status, connection_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_external_synchronization_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_receiver_monitor_stream_status_internal(resources, monitor_oid, stream_status, stream_status_message, get_control_protocol_class_descriptor, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, link_status, link_status_message, receiver_link_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, connection_status, connection_status_message, receiver_connection_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, receiver_external_synchronization_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, stream_status, stream_status_message, receiver_stream_status_domain, get_control_protocol_class_descriptor, {}, gate)); auto actual_link_status = nmos::nc::get_property(resources, monitor_oid, nmos::nc_receiver_monitor_link_status_property_id, get_control_protocol_class_descriptor, gate); BST_CHECK_EQUAL(link_status, actual_link_status.as_integer()); @@ -521,6 +518,11 @@ BST_TEST_CASE(testSetSenderMonitorStatuses) insert_resource(resources, std::move(root_block)); insert_resource(resources, std::move(class_manager)); insert_resource(resources, std::move(monitor)); + const auto sender_monitor_domains = nmos::experimental::make_sender_monitor_domains(); + const auto& sender_external_synchronization_status_domain = sender_monitor_domains.at(0); + const auto& sender_essence_status_domain = sender_monitor_domains.at(1); + const auto& sender_transmission_status_domain = sender_monitor_domains.at(2); + const auto& sender_link_status_domain = sender_monitor_domains.at(3); { auto link_status = nmos::nc_link_status::status::all_up; @@ -536,10 +538,10 @@ BST_TEST_CASE(testSetSenderMonitorStatuses) auto essence_status_message = U("essence status healthy"); auto expected_essence_status_transition_counter = 0; - BST_REQUIRE(nmos::nc::details::set_sender_monitor_link_status_internal(resources, monitor_oid, link_status, link_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_transmission_status_internal(resources, monitor_oid, transmission_status, transmission_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_external_synchronization_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_essence_status_internal(resources, monitor_oid, essence_status, essence_status_message, get_control_protocol_class_descriptor, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, link_status, link_status_message, sender_link_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, transmission_status, transmission_status_message, sender_transmission_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, sender_external_synchronization_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, essence_status, essence_status_message, sender_essence_status_domain, get_control_protocol_class_descriptor, {}, gate)); auto actual_link_status = nmos::nc::get_property(resources, monitor_oid, nmos::nc_sender_monitor_link_status_property_id, get_control_protocol_class_descriptor, gate); BST_CHECK_EQUAL(link_status, actual_link_status.as_integer()); @@ -583,10 +585,10 @@ BST_TEST_CASE(testSetSenderMonitorStatuses) auto essence_status_message = U("essence status healthy"); auto expected_essence_status_transition_counter = 0; - BST_REQUIRE(nmos::nc::details::set_sender_monitor_link_status_internal(resources, monitor_oid, link_status, link_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_transmission_status_internal(resources, monitor_oid, transmission_status, transmission_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_external_synchronization_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_essence_status_internal(resources, monitor_oid, essence_status, essence_status_message, get_control_protocol_class_descriptor, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, link_status, link_status_message, sender_link_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, transmission_status, transmission_status_message, sender_transmission_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, sender_external_synchronization_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, essence_status, essence_status_message, sender_essence_status_domain, get_control_protocol_class_descriptor, {}, gate)); auto actual_link_status = nmos::nc::get_property(resources, monitor_oid, nmos::nc_sender_monitor_link_status_property_id, get_control_protocol_class_descriptor, gate); BST_CHECK_EQUAL(link_status, actual_link_status.as_integer()); @@ -630,10 +632,10 @@ BST_TEST_CASE(testSetSenderMonitorStatuses) auto essence_status_message = U("essence status healthy"); auto expected_essence_status_transition_counter = 1; - BST_REQUIRE(nmos::nc::details::set_sender_monitor_link_status_internal(resources, monitor_oid, link_status, link_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_transmission_status_internal(resources, monitor_oid, transmission_status, transmission_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_external_synchronization_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_essence_status_internal(resources, monitor_oid, essence_status, essence_status_message, get_control_protocol_class_descriptor, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, link_status, link_status_message, sender_link_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, transmission_status, transmission_status_message, sender_transmission_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, sender_external_synchronization_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, essence_status, essence_status_message, sender_essence_status_domain, get_control_protocol_class_descriptor, {}, gate)); auto actual_link_status = nmos::nc::get_property(resources, monitor_oid, nmos::nc_sender_monitor_link_status_property_id, get_control_protocol_class_descriptor, gate); BST_CHECK_EQUAL(link_status, actual_link_status.as_integer()); @@ -677,10 +679,10 @@ BST_TEST_CASE(testSetSenderMonitorStatuses) auto essence_status_message = U("essence status healthy"); auto expected_essence_status_transition_counter = 1; - BST_REQUIRE(nmos::nc::details::set_sender_monitor_link_status_internal(resources, monitor_oid, link_status, link_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_transmission_status_internal(resources, monitor_oid, transmission_status, transmission_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_external_synchronization_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, get_control_protocol_class_descriptor, gate)); - BST_REQUIRE(nmos::nc::details::set_sender_monitor_essence_status_internal(resources, monitor_oid, essence_status, essence_status_message, get_control_protocol_class_descriptor, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, link_status, link_status_message, sender_link_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, transmission_status, transmission_status_message, sender_transmission_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, external_synchronization_status, external_synchronization_status_message, sender_external_synchronization_status_domain, get_control_protocol_class_descriptor, {}, gate)); + BST_REQUIRE(nmos::nc::details::set_monitor_status_internal(resources, monitor_oid, essence_status, essence_status_message, sender_essence_status_domain, get_control_protocol_class_descriptor, {}, gate)); auto actual_link_status = nmos::nc::get_property(resources, monitor_oid, nmos::nc_sender_monitor_link_status_property_id, get_control_protocol_class_descriptor, gate); BST_CHECK_EQUAL(link_status, actual_link_status.as_integer());