X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Fgraph%2Fmip.c;h=96fb368636f76fe906dd093c1882986a8562c136;hb=1353b066072e6c389ff35853bac83f65597e7a6a;hp=2e0aac35d65a8d5f03f555c81a4ca32e22957611;hpb=6ecdcca3de0dea694cdfb252160c7939f7dc2ef1;p=babeltrace.git diff --git a/src/lib/graph/mip.c b/src/lib/graph/mip.c index 2e0aac35..96fb3686 100644 --- a/src/lib/graph/mip.c +++ b/src/lib/graph/mip.c @@ -1,34 +1,17 @@ /* - * Copyright 2019 Philippe Proulx - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: + * SPDX-License-Identifier: MIT * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Copyright 2019 Philippe Proulx */ #define BT_LOG_TAG "LIB/MIP" #include "lib/logging.h" -#include "lib/assert-pre.h" -#include "lib/assert-post.h" +#include "lib/assert-cond.h" #include #include #include -#include +#include #include "common/assert.h" #include "compat/compiler.h" @@ -88,6 +71,7 @@ int validate_operative_mip_version_in_array(GPtrArray *descriptors, struct bt_component_descriptor_set_entry *descr = descriptors->pdata[i]; method_t method = NULL; + const char *method_name = NULL; bt_component_class_get_supported_mip_versions_method_status method_status; switch (descr->comp_cls->type) { @@ -97,6 +81,7 @@ int validate_operative_mip_version_in_array(GPtrArray *descriptors, descr->comp_cls; method = (method_t) src_cc->methods.get_supported_mip_versions; + method_name = "bt_component_class_source_get_supported_mip_versions_method"; break; } case BT_COMPONENT_CLASS_TYPE_FILTER: @@ -105,6 +90,7 @@ int validate_operative_mip_version_in_array(GPtrArray *descriptors, descr->comp_cls; method = (method_t) flt_cc->methods.get_supported_mip_versions; + method_name = "bt_component_class_filter_get_supported_mip_versions_method"; break; } case BT_COMPONENT_CLASS_TYPE_SINK: @@ -113,6 +99,7 @@ int validate_operative_mip_version_in_array(GPtrArray *descriptors, descr->comp_cls; method = (method_t) sink_cc->methods.get_supported_mip_versions; + method_name = "bt_component_class_sink_get_supported_mip_versions_method"; break; } default: @@ -142,11 +129,13 @@ int validate_operative_mip_version_in_array(GPtrArray *descriptors, range_set); BT_LIB_LOGD("User method returned: status=%s", bt_common_func_status_string(method_status)); - BT_ASSERT_POST(method_status != BT_FUNC_STATUS_OK || + BT_ASSERT_POST(method_name, "status-ok-with-at-least-one-range", + method_status != BT_FUNC_STATUS_OK || range_set->ranges->len > 0, "User method returned `BT_FUNC_STATUS_OK` without " "adding a range to the supported MIP version range set."); - BT_ASSERT_POST_NO_ERROR_IF_NO_ERROR_STATUS(method_status); + BT_ASSERT_POST_NO_ERROR_IF_NO_ERROR_STATUS(method_name, + method_status); if (method_status < 0) { BT_LIB_LOGW_APPEND_CAUSE( "Component class's \"get supported MIP versions\" method failed: " @@ -187,6 +176,7 @@ end: * When any component descriptor does not support MIP version 0, this * function returns `BT_FUNC_STATUS_NO_MATCH`. */ +BT_EXPORT enum bt_get_greatest_operative_mip_version_status bt_get_greatest_operative_mip_version( const struct bt_component_descriptor_set *comp_descr_set, @@ -195,10 +185,13 @@ bt_get_greatest_operative_mip_version( { int status = BT_FUNC_STATUS_OK; - BT_ASSERT_PRE_NON_NULL(comp_descr_set, "Component descriptor set"); - BT_ASSERT_PRE_NON_NULL(operative_mip_version, + BT_ASSERT_PRE_NO_ERROR(); + BT_ASSERT_PRE_COMP_DESCR_SET_NON_NULL(comp_descr_set); + BT_ASSERT_PRE_NON_NULL("operative-mip-version-output", + operative_mip_version, "Operative MIP version (output)"); - BT_ASSERT_PRE(comp_descr_set->sources->len + + BT_ASSERT_PRE("component-descriptor-set-is-not-empty", + comp_descr_set->sources->len + comp_descr_set->filters->len + comp_descr_set->sinks->len > 0, "Component descriptor set is empty: addr=%p", comp_descr_set); @@ -226,6 +219,7 @@ end: return status; } +BT_EXPORT uint64_t bt_get_maximal_mip_version(void) { return 0;