X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Fgraph%2Fcomponent-class.c;h=9bbf4172e751845d0c1afc2b32fe11457249fef4;hb=2e1b56154a3032b52687751ed2e5c1a8a5134f7c;hp=643c6a35807d37513da960b0c8a32392d5296fc0;hpb=870631a2db01676b476dbee615aade0a22926bcd;p=babeltrace.git diff --git a/src/lib/graph/component-class.c b/src/lib/graph/component-class.c index 643c6a35..9bbf4172 100644 --- a/src/lib/graph/component-class.c +++ b/src/lib/graph/component-class.c @@ -41,8 +41,8 @@ #include "component-class.h" #include "lib/func-status.h" -#define BT_ASSERT_PRE_COMP_CLS_HOT(_cc) \ - BT_ASSERT_PRE_HOT(((const struct bt_component_class *) (_cc)), \ +#define BT_ASSERT_PRE_DEV_COMP_CLS_HOT(_cc) \ + BT_ASSERT_PRE_DEV_HOT(((const struct bt_component_class *) (_cc)), \ "Component class", ": %!+C", (_cc)) static @@ -262,13 +262,55 @@ end: } enum bt_component_class_set_method_status -bt_component_class_source_set_init_method( +bt_component_class_source_set_get_supported_mip_versions_method( struct bt_component_class_source *comp_cls, - bt_component_class_source_init_method method) + bt_component_class_source_get_supported_mip_versions_method method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.get_supported_mip_versions = method; + BT_LIB_LOGD("Set source component class's \"get supported MIP versions\" method: " + "%!+C", comp_cls); + return BT_FUNC_STATUS_OK; +} + +enum bt_component_class_set_method_status +bt_component_class_filter_set_get_supported_mip_versions_method( + struct bt_component_class_filter *comp_cls, + bt_component_class_filter_get_supported_mip_versions_method method) +{ + BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); + BT_ASSERT_PRE_NON_NULL(method, "Method"); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.get_supported_mip_versions = method; + BT_LIB_LOGD("Set filter component class's \"get supported MIP versions\" method: " + "%!+C", comp_cls); + return BT_FUNC_STATUS_OK; +} + +enum bt_component_class_set_method_status +bt_component_class_sink_set_get_supported_mip_versions_method( + struct bt_component_class_sink *comp_cls, + bt_component_class_sink_get_supported_mip_versions_method method) +{ + BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); + BT_ASSERT_PRE_NON_NULL(method, "Method"); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.get_supported_mip_versions = method; + BT_LIB_LOGD("Set sink component class's \"get supported MIP versions\" method: " + "%!+C", comp_cls); + return BT_FUNC_STATUS_OK; +} + +enum bt_component_class_set_method_status +bt_component_class_source_set_initialize_method( + struct bt_component_class_source *comp_cls, + bt_component_class_source_initialize_method method) +{ + BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); + BT_ASSERT_PRE_NON_NULL(method, "Method"); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.init = method; BT_LIB_LOGD("Set source component class's initialization method: " "%!+C", comp_cls); @@ -276,13 +318,13 @@ bt_component_class_source_set_init_method( } enum bt_component_class_set_method_status -bt_component_class_filter_set_init_method( +bt_component_class_filter_set_initialize_method( struct bt_component_class_filter *comp_cls, - bt_component_class_filter_init_method method) + bt_component_class_filter_initialize_method method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.init = method; BT_LIB_LOGD("Set filter component class's initialization method: " "%!+C", comp_cls); @@ -290,13 +332,13 @@ bt_component_class_filter_set_init_method( } enum bt_component_class_set_method_status -bt_component_class_sink_set_init_method( +bt_component_class_sink_set_initialize_method( struct bt_component_class_sink *comp_cls, - bt_component_class_sink_init_method method) + bt_component_class_sink_initialize_method method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.init = method; BT_LIB_LOGD("Set sink component class's initialization method: " "%!+C", comp_cls); @@ -310,7 +352,7 @@ bt_component_class_source_set_finalize_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.finalize = method; BT_LIB_LOGD("Set source component class's finalization method: " "%!+C", comp_cls); @@ -324,7 +366,7 @@ bt_component_class_filter_set_finalize_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.finalize = method; BT_LIB_LOGD("Set filter component class's finalization method: " "%!+C", comp_cls); @@ -338,7 +380,7 @@ bt_component_class_sink_set_finalize_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.finalize = method; BT_LIB_LOGD("Set sink component class's finalization method: " "%!+C", comp_cls); @@ -352,7 +394,7 @@ bt_component_class_source_set_query_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.query = method; BT_LIB_LOGD("Set source component class's query method: " "%!+C", comp_cls); @@ -366,7 +408,7 @@ bt_component_class_filter_set_query_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.query = method; BT_LIB_LOGD("Set filter component class's query method: " "%!+C", comp_cls); @@ -380,7 +422,7 @@ bt_component_class_sink_set_query_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.query = method; BT_LIB_LOGD("Set sink component class's query method: " "%!+C", comp_cls); @@ -394,7 +436,7 @@ bt_component_class_filter_set_input_port_connected_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.input_port_connected = method; BT_LIB_LOGD("Set filter component class's \"input port connected\" method" ": %!+C", comp_cls); @@ -408,7 +450,7 @@ bt_component_class_sink_set_input_port_connected_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.input_port_connected = method; BT_LIB_LOGD("Set sink component class's \"input port connected\" method" ": %!+C", comp_cls); @@ -422,7 +464,7 @@ bt_component_class_source_set_output_port_connected_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.output_port_connected = method; BT_LIB_LOGD("Set source component class's \"output port connected\" method" ": %!+C", comp_cls); @@ -436,7 +478,7 @@ bt_component_class_filter_set_output_port_connected_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.output_port_connected = method; BT_LIB_LOGD("Set filter component class's \"output port connected\" method" ": %!+C", comp_cls); @@ -450,7 +492,7 @@ bt_component_class_sink_set_graph_is_configured_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.graph_is_configured = method; BT_LIB_LOGD("Set sink component class's \"graph is configured\" method" ": %!+C", comp_cls); @@ -458,28 +500,28 @@ bt_component_class_sink_set_graph_is_configured_method( } enum bt_component_class_set_method_status -bt_component_class_source_set_message_iterator_init_method( +bt_component_class_source_set_message_iterator_initialize_method( struct bt_component_class_source *comp_cls, - bt_component_class_source_message_iterator_init_method method) + bt_component_class_source_message_iterator_initialize_method method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_init = method; + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.msg_iter_initialize = method; BT_LIB_LOGD("Set source component class's message iterator initialization method" ": %!+C", comp_cls); return BT_FUNC_STATUS_OK; } enum bt_component_class_set_method_status -bt_component_class_filter_set_message_iterator_init_method( +bt_component_class_filter_set_message_iterator_initialize_method( struct bt_component_class_filter *comp_cls, - bt_component_class_filter_message_iterator_init_method method) + bt_component_class_filter_message_iterator_initialize_method method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_init = method; + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.msg_iter_initialize = method; BT_LIB_LOGD("Set filter component class's message iterator initialization method" ": %!+C", comp_cls); return BT_FUNC_STATUS_OK; @@ -492,7 +534,7 @@ bt_component_class_source_set_message_iterator_finalize_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.msg_iter_finalize = method; BT_LIB_LOGD("Set source component class's message iterator finalization method" ": %!+C", comp_cls); @@ -506,7 +548,7 @@ bt_component_class_filter_set_message_iterator_finalize_method( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); comp_cls->methods.msg_iter_finalize = method; BT_LIB_LOGD("Set filter component class's message iterator finalization method" ": %!+C", comp_cls); @@ -514,113 +556,65 @@ bt_component_class_filter_set_message_iterator_finalize_method( } enum bt_component_class_set_method_status -bt_component_class_filter_set_message_iterator_seek_ns_from_origin_method( +bt_component_class_filter_set_message_iterator_seek_ns_from_origin_methods( struct bt_component_class_filter *comp_cls, - bt_component_class_filter_message_iterator_seek_ns_from_origin_method method) + bt_component_class_filter_message_iterator_seek_ns_from_origin_method seek_method, + bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method can_seek_method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); - BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_seek_ns_from_origin = method; + BT_ASSERT_PRE_NON_NULL(seek_method, "Seek method"); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.msg_iter_seek_ns_from_origin = seek_method; + comp_cls->methods.msg_iter_can_seek_ns_from_origin = can_seek_method; BT_LIB_LOGD("Set filter component class's message iterator \"seek nanoseconds from origin\" method" ": %!+C", comp_cls); return BT_FUNC_STATUS_OK; } enum bt_component_class_set_method_status -bt_component_class_source_set_message_iterator_seek_ns_from_origin_method( +bt_component_class_source_set_message_iterator_seek_ns_from_origin_methods( struct bt_component_class_source *comp_cls, - bt_component_class_source_message_iterator_seek_ns_from_origin_method method) + bt_component_class_source_message_iterator_seek_ns_from_origin_method seek_method, + bt_component_class_source_message_iterator_can_seek_ns_from_origin_method can_seek_method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); - BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_seek_ns_from_origin = method; - BT_LIB_LOGD("Set source component class's message iterator \"seek nanoseconds from origin\" method" + BT_ASSERT_PRE_NON_NULL(seek_method, "Seek method"); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.msg_iter_seek_ns_from_origin = seek_method; + comp_cls->methods.msg_iter_can_seek_ns_from_origin = can_seek_method; + BT_LIB_LOGD("Set source component class's message iterator \"seek nanoseconds from origin\" methods" ": %!+C", comp_cls); return BT_FUNC_STATUS_OK; } enum bt_component_class_set_method_status -bt_component_class_filter_set_message_iterator_seek_beginning_method( +bt_component_class_filter_set_message_iterator_seek_beginning_methods( struct bt_component_class_filter *comp_cls, - bt_component_class_filter_message_iterator_seek_beginning_method method) + bt_component_class_filter_message_iterator_seek_beginning_method seek_method, + bt_component_class_filter_message_iterator_can_seek_beginning_method can_seek_method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); - BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_seek_beginning = method; - BT_LIB_LOGD("Set filter component class's message iterator \"seek beginning\" method" + BT_ASSERT_PRE_NON_NULL(seek_method, "Seek method"); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.msg_iter_seek_beginning = seek_method; + comp_cls->methods.msg_iter_can_seek_beginning = can_seek_method; + BT_LIB_LOGD("Set filter component class's message iterator \"seek beginning\" methods" ": %!+C", comp_cls); return BT_FUNC_STATUS_OK; } enum bt_component_class_set_method_status -bt_component_class_source_set_message_iterator_seek_beginning_method( +bt_component_class_source_set_message_iterator_seek_beginning_methods( struct bt_component_class_source *comp_cls, - bt_component_class_source_message_iterator_seek_beginning_method method) + bt_component_class_source_message_iterator_seek_beginning_method seek_method, + bt_component_class_source_message_iterator_can_seek_beginning_method can_seek_method) { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); - BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_seek_beginning = method; - BT_LIB_LOGD("Set source component class's message iterator \"seek beginning\" method" - ": %!+C", comp_cls); - return BT_FUNC_STATUS_OK; -} - -enum bt_component_class_set_method_status -bt_component_class_filter_set_message_iterator_can_seek_beginning_method( - struct bt_component_class_filter *comp_cls, - bt_component_class_filter_message_iterator_can_seek_beginning_method method) -{ - BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); - BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_can_seek_beginning = method; - BT_LIB_LOGD("Set filter component class's message iterator \"can seek beginning\" method" - ": %!+C", comp_cls); - return BT_FUNC_STATUS_OK; -} - -enum bt_component_class_set_method_status -bt_component_class_source_set_message_iterator_can_seek_beginning_method( - struct bt_component_class_source *comp_cls, - bt_component_class_source_message_iterator_can_seek_beginning_method method) -{ - BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); - BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_can_seek_beginning = method; - BT_LIB_LOGD("Set source component class's message iterator \"can seek beginning\" method" - ": %!+C", comp_cls); - return BT_FUNC_STATUS_OK; -} - -enum bt_component_class_set_method_status -bt_component_class_filter_set_message_iterator_can_seek_ns_from_origin_method( - struct bt_component_class_filter *comp_cls, - bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method method) -{ - BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); - BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_can_seek_ns_from_origin = method; - BT_LIB_LOGD("Set filter component class's message iterator \"can seek nanoseconds from origin\" method" - ": %!+C", comp_cls); - return BT_FUNC_STATUS_OK; -} - -enum bt_component_class_set_method_status -bt_component_class_source_set_message_iterator_can_seek_ns_from_origin_method( - struct bt_component_class_source *comp_cls, - bt_component_class_source_message_iterator_can_seek_ns_from_origin_method method) -{ - BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); - BT_ASSERT_PRE_NON_NULL(method, "Method"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); - comp_cls->methods.msg_iter_can_seek_ns_from_origin = method; - BT_LIB_LOGD("Set source component class's message iterator \"can seek nanoseconds from origin\" method" + BT_ASSERT_PRE_NON_NULL(seek_method, "Seek method"); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); + comp_cls->methods.msg_iter_seek_beginning = seek_method; + comp_cls->methods.msg_iter_can_seek_beginning = can_seek_method; + BT_LIB_LOGD("Set source component class's message iterator \"seek beginning\" methods" ": %!+C", comp_cls); return BT_FUNC_STATUS_OK; } @@ -632,7 +626,7 @@ bt_component_class_set_description( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(description, "Description"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); g_string_assign(comp_cls->description, description); BT_LIB_LOGD("Set component class's description: " "addr=%p, name=\"%s\", type=%s", @@ -648,7 +642,7 @@ enum bt_component_class_set_help_status bt_component_class_set_help( { BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); BT_ASSERT_PRE_NON_NULL(help, "Help"); - BT_ASSERT_PRE_COMP_CLS_HOT(comp_cls); + BT_ASSERT_PRE_DEV_COMP_CLS_HOT(comp_cls); g_string_assign(comp_cls->help, help); BT_LIB_LOGD("Set component class's help text: %!+C", comp_cls); return BT_FUNC_STATUS_OK; @@ -656,21 +650,21 @@ enum bt_component_class_set_help_status bt_component_class_set_help( const char *bt_component_class_get_name(const struct bt_component_class *comp_cls) { - BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); + BT_ASSERT_PRE_DEV_NON_NULL(comp_cls, "Component class"); return comp_cls->name->str; } enum bt_component_class_type bt_component_class_get_type( const struct bt_component_class *comp_cls) { - BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); + BT_ASSERT_PRE_DEV_NON_NULL(comp_cls, "Component class"); return comp_cls->type; } const char *bt_component_class_get_description( const struct bt_component_class *comp_cls) { - BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); + BT_ASSERT_PRE_DEV_NON_NULL(comp_cls, "Component class"); return comp_cls->description && comp_cls->description->str[0] != '\0' ? comp_cls->description->str : NULL; @@ -679,7 +673,7 @@ const char *bt_component_class_get_description( const char *bt_component_class_get_help( const struct bt_component_class *comp_cls) { - BT_ASSERT_PRE_NON_NULL(comp_cls, "Component class"); + BT_ASSERT_PRE_DEV_NON_NULL(comp_cls, "Component class"); return comp_cls->help && comp_cls->help->str[0] != '\0' ? comp_cls->help->str : NULL; }