lib: plugin-dev.h: rename `MESSAGE_ITERATOR` -> `MESSAGE_ITERATOR_CLASS`
[babeltrace.git] / include / babeltrace2 / plugin / plugin-dev.h
index e2b03be09434678f946c6ed34ae2aafbb5d017bf..c78288b8d87ef276914eed64fb066cb911b32a20 100644 (file)
@@ -2,11 +2,7 @@
 #define BABELTRACE2_PLUGIN_PLUGIN_DEV_H
 
 /*
- * This is the header that you need to include for the development of
- * a Babeltrace plug-in.
- *
- * Copyright 2017-2018 Philippe Proulx <pproulx@efficios.com>
- * Copyright 2015 Jérémie Galarneau <jeremie.galarneau@efficios.com>
+ * Copyright (c) 2010-2019 EfficiOS Inc. and Linux Foundation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
 
 #include <stdint.h>
 
-/* For bt_component_class_type */
 #include <babeltrace2/graph/component-class-const.h>
-
-/* For component class method type definitions */
 #include <babeltrace2/graph/component-class-source.h>
 #include <babeltrace2/graph/component-class-filter.h>
 #include <babeltrace2/graph/component-class-sink.h>
-
-/* For bt_self_plugin */
+#include <babeltrace2/graph/message-iterator-class.h>
 #include <babeltrace2/types.h>
 
 /*
 extern "C" {
 #endif
 
-/*
- * Plugin interface's version, not synced with Babeltrace's version
- * (internal use).
- */
-#define __BT_PLUGIN_VERSION_MAJOR      1
-#define __BT_PLUGIN_VERSION_MINOR      0
-
 /* Plugin initialization function type */
-typedef enum bt_plugin_init_func_status {
-       BT_PLUGIN_INIT_FUNC_STATUS_OK           = __BT_FUNC_STATUS_OK,
-       BT_PLUGIN_INIT_FUNC_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR,
-       BT_PLUGIN_INIT_FUNC_STATUS_ERROR        = __BT_FUNC_STATUS_ERROR,
-} bt_plugin_init_func_status;
+typedef enum bt_plugin_initialize_func_status {
+       BT_PLUGIN_INITIALIZE_FUNC_STATUS_OK             = __BT_FUNC_STATUS_OK,
+       BT_PLUGIN_INITIALIZE_FUNC_STATUS_MEMORY_ERROR   = __BT_FUNC_STATUS_MEMORY_ERROR,
+       BT_PLUGIN_INITIALIZE_FUNC_STATUS_ERROR          = __BT_FUNC_STATUS_ERROR,
+} bt_plugin_initialize_func_status;
 
-typedef bt_plugin_init_func_status (*bt_plugin_init_func)(
+typedef bt_plugin_initialize_func_status (*bt_plugin_initialize_func)(
                bt_self_plugin *plugin);
 
 /* Plugin exit function type */
-typedef void (*bt_plugin_exit_func)(void);
+typedef void (*bt_plugin_finalize_func)(void);
 
 /* Plugin descriptor: describes a single plugin (internal use) */
 struct __bt_plugin_descriptor {
-       /* Plugin's interface major version number */
-       uint32_t major;
-
-       /* Plugin's interface minor version number */
-       uint32_t minor;
-
        /* Plugin's name */
        const char *name;
 } __attribute__((packed));
@@ -123,10 +102,10 @@ struct __bt_plugin_descriptor_attribute {
        /* Attribute's value (depends on attribute's type) */
        union {
                /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_INIT */
-               bt_plugin_init_func init;
+               bt_plugin_initialize_func init;
 
                /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_EXIT */
-               bt_plugin_exit_func exit;
+               bt_plugin_finalize_func exit;
 
                /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_AUTHOR */
                const char *author;
@@ -160,12 +139,12 @@ struct __bt_plugin_component_class_descriptor {
        union {
                /* BT_COMPONENT_CLASS_TYPE_SOURCE */
                struct {
-                       bt_component_class_source_message_iterator_next_method msg_iter_next;
+                       bt_message_iterator_class_next_method msg_iter_next;
                } source;
 
                /* BT_COMPONENT_CLASS_TYPE_FILTER */
                struct {
-                       bt_component_class_filter_message_iterator_next_method msg_iter_next;
+                       bt_message_iterator_class_next_method msg_iter_next;
                } filter;
 
                /* BT_COMPONENT_CLASS_TYPE_SINK */
@@ -179,18 +158,19 @@ struct __bt_plugin_component_class_descriptor {
 enum __bt_plugin_component_class_descriptor_attribute_type {
        BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION                                 = 0,
        BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP                                        = 1,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD                                 = 2,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FINALIZE_METHOD                             = 3,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_QUERY_METHOD                                = 4,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INPUT_PORT_CONNECTED_METHOD                 = 5,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_OUTPUT_PORT_CONNECTED_METHOD                = 6,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GRAPH_IS_CONFIGURED_METHOD                  = 7,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INIT_METHOD                        = 8,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD                    = 9,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD         = 10,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD              = 11,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD     = 12,
-       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD          = 13,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GET_SUPPORTED_MIP_VERSIONS_METHOD           = 2,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INITIALIZE_METHOD                                   = 3,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FINALIZE_METHOD                             = 4,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_QUERY_METHOD                                = 5,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INPUT_PORT_CONNECTED_METHOD                 = 6,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_OUTPUT_PORT_CONNECTED_METHOD                = 7,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GRAPH_IS_CONFIGURED_METHOD                  = 8,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INITIALIZE_METHOD                  = 9,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD                    = 10,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD         = 11,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD              = 12,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD     = 13,
+       BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD          = 14,
 };
 
 /* Component class attribute (internal use) */
@@ -215,10 +195,15 @@ struct __bt_plugin_component_class_descriptor_attribute {
                /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP */
                const char *help;
 
-               /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD */
-               bt_component_class_source_init_method source_init_method;
-               bt_component_class_filter_init_method filter_init_method;
-               bt_component_class_sink_init_method sink_init_method;
+               /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GET_SUPPORTED_MIP_VERSIONS_METHOD */
+               bt_component_class_source_get_supported_mip_versions_method source_get_supported_mip_versions_method;
+               bt_component_class_filter_get_supported_mip_versions_method filter_get_supported_mip_versions_method;
+               bt_component_class_sink_get_supported_mip_versions_method sink_get_supported_mip_versions_method;
+
+               /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INITIALIZE_METHOD */
+               bt_component_class_source_initialize_method source_initialize_method;
+               bt_component_class_filter_initialize_method filter_initialize_method;
+               bt_component_class_sink_initialize_method sink_initialize_method;
 
                /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FINALIZE_METHOD */
                bt_component_class_source_finalize_method source_finalize_method;
@@ -241,29 +226,23 @@ struct __bt_plugin_component_class_descriptor_attribute {
                /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GRAPH_IS_CONFIGURED_METHOD */
                bt_component_class_sink_graph_is_configured_method sink_graph_is_configured_method;
 
-               /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INIT_METHOD */
-               bt_component_class_source_message_iterator_init_method source_msg_iter_init_method;
-               bt_component_class_filter_message_iterator_init_method filter_msg_iter_init_method;
+               /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INITIALIZE_METHOD */
+               bt_message_iterator_class_initialize_method msg_iter_initialize_method;
 
                /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD */
-               bt_component_class_source_message_iterator_finalize_method source_msg_iter_finalize_method;
-               bt_component_class_filter_message_iterator_finalize_method filter_msg_iter_finalize_method;
+               bt_message_iterator_class_finalize_method msg_iter_finalize_method;
 
                /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD */
-               bt_component_class_source_message_iterator_seek_ns_from_origin_method source_msg_iter_seek_ns_from_origin_method;
-               bt_component_class_filter_message_iterator_seek_ns_from_origin_method filter_msg_iter_seek_ns_from_origin_method;
+               bt_message_iterator_class_seek_ns_from_origin_method msg_iter_seek_ns_from_origin_method;
 
                /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD */
-               bt_component_class_source_message_iterator_seek_beginning_method source_msg_iter_seek_beginning_method;
-               bt_component_class_filter_message_iterator_seek_beginning_method filter_msg_iter_seek_beginning_method;
+               bt_message_iterator_class_seek_beginning_method msg_iter_seek_beginning_method;
 
                /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD */
-               bt_component_class_source_message_iterator_can_seek_ns_from_origin_method source_msg_iter_can_seek_ns_from_origin_method;
-               bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method filter_msg_iter_can_seek_ns_from_origin_method;
+               bt_message_iterator_class_can_seek_ns_from_origin_method msg_iter_can_seek_ns_from_origin_method;
 
                /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD */
-               bt_component_class_source_message_iterator_can_seek_beginning_method source_msg_iter_can_seek_beginning_method;
-               bt_component_class_filter_message_iterator_can_seek_beginning_method filter_msg_iter_can_seek_beginning_method;
+               bt_message_iterator_class_can_seek_beginning_method msg_iter_can_seek_beginning_method;
        } value;
 } __attribute__((packed));
 
@@ -436,8 +415,6 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  */
 #define BT_PLUGIN_WITH_ID(_id, _name)                                  \
        struct __bt_plugin_descriptor __bt_plugin_descriptor_##_id = {  \
-               .major = __BT_PLUGIN_VERSION_MAJOR,                     \
-               .minor = __BT_PLUGIN_VERSION_MINOR,                     \
                .name = _name,                                          \
        };                                                              \
        static struct __bt_plugin_descriptor const * const __bt_plugin_descriptor_##_id##_ptr __BT_PLUGIN_DESCRIPTOR_ATTRS = &__bt_plugin_descriptor_##_id
@@ -455,7 +432,7 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
                .plugin_descriptor = &__bt_plugin_descriptor_##_id,     \
                .type_name = #_attr_name,                               \
                .type = _attr_type,                                     \
-               .value._attr_name = _x,                                 \
+               .value = { ._attr_name = _x },                          \
        };                                                              \
        static struct __bt_plugin_descriptor_attribute const * const __bt_plugin_descriptor_attribute_##_id##_##_attr_name##_ptr __BT_PLUGIN_DESCRIPTOR_ATTRIBUTES_ATTRS = &__bt_plugin_descriptor_attribute_##_id##_##_attr_name
 
@@ -464,9 +441,9 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * specific plugin descriptor.
  *
  * _id: Plugin descriptor ID (C identifier).
- * _x:  Initialization function (bt_plugin_init_func).
+ * _x:  Initialization function (bt_plugin_initialize_func).
  */
-#define BT_PLUGIN_INIT_WITH_ID(_id, _x) \
+#define BT_PLUGIN_INITIALIZE_FUNC_WITH_ID(_id, _x) \
        __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(init, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_INIT, _id, _x)
 
 /*
@@ -474,9 +451,9 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * plugin descriptor.
  *
  * _id: Plugin descriptor ID (C identifier).
- * _x:  Exit function (bt_plugin_exit_func).
+ * _x:  Exit function (bt_plugin_finalize_func).
  */
-#define BT_PLUGIN_EXIT_WITH_ID(_id, _x) \
+#define BT_PLUGIN_FINALIZE_FUNC_WITH_ID(_id, _x) \
        __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(exit, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_EXIT, _id, _x)
 
 /*
@@ -533,13 +510,11 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  */
 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_WITH_ID(_id, _comp_class_id, _name, _msg_iter_next_method) \
        static struct __bt_plugin_component_class_descriptor __bt_plugin_source_component_class_descriptor_##_id##_##_comp_class_id = { \
-               .plugin_descriptor = &__bt_plugin_descriptor_##_id,     \
-               .name = _name,                                          \
-               .type = BT_COMPONENT_CLASS_TYPE_SOURCE,                 \
-               .methods.source = {                                     \
-                       .msg_iter_next = _msg_iter_next_method, \
-               },                                                      \
-       };                                                              \
+               .plugin_descriptor = &__bt_plugin_descriptor_##_id,                     \
+               .name = _name,                                                          \
+               .type = BT_COMPONENT_CLASS_TYPE_SOURCE,                                 \
+               .methods = { .source = { .msg_iter_next = _msg_iter_next_method } },    \
+       };                                                                              \
        static struct __bt_plugin_component_class_descriptor const * const __bt_plugin_source_component_class_descriptor_##_id##_##_comp_class_id##_ptr __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRS = &__bt_plugin_source_component_class_descriptor_##_id##_##_comp_class_id
 
 /*
@@ -553,13 +528,11 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  */
 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_WITH_ID(_id, _comp_class_id, _name, _msg_iter_next_method) \
        static struct __bt_plugin_component_class_descriptor __bt_plugin_filter_component_class_descriptor_##_id##_##_comp_class_id = { \
-               .plugin_descriptor = &__bt_plugin_descriptor_##_id,     \
-               .name = _name,                                          \
-               .type = BT_COMPONENT_CLASS_TYPE_FILTER,                 \
-               .methods.filter = {                                     \
-                       .msg_iter_next = _msg_iter_next_method, \
-               },                                                      \
-       };                                                              \
+               .plugin_descriptor = &__bt_plugin_descriptor_##_id,                     \
+               .name = _name,                                                          \
+               .type = BT_COMPONENT_CLASS_TYPE_FILTER,                                 \
+               .methods = { .filter = { .msg_iter_next = _msg_iter_next_method } },    \
+       };                                                                              \
        static struct __bt_plugin_component_class_descriptor const * const __bt_plugin_filter_component_class_descriptor_##_id##_##_comp_class_id##_ptr __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRS = &__bt_plugin_filter_component_class_descriptor_##_id##_##_comp_class_id
 
 /*
@@ -576,9 +549,7 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
                .plugin_descriptor = &__bt_plugin_descriptor_##_id,     \
                .name = _name,                                          \
                .type = BT_COMPONENT_CLASS_TYPE_SINK,                   \
-               .methods.sink = {                                       \
-                       .consume = _consume_method,                     \
-               },                                                      \
+               .methods = { .sink = { .consume = _consume_method } },  \
        };                                                              \
        static struct __bt_plugin_component_class_descriptor const * const __bt_plugin_sink_component_class_descriptor_##_id##_##_comp_class_id##_ptr __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRS = &__bt_plugin_sink_component_class_descriptor_##_id##_##_comp_class_id
 
@@ -599,7 +570,7 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
                .comp_class_descriptor = &__bt_plugin_##_type##_component_class_descriptor_##_id##_##_comp_class_id, \
                .type_name = #_attr_name,                               \
                .type = _attr_type,                                     \
-               .value._attr_name = _x,                                 \
+               .value = { ._attr_name = _x },                          \
        };                                                              \
        static struct __bt_plugin_component_class_descriptor_attribute const * const __bt_plugin_##_type##_component_class_descriptor_attribute_##_id##_##_comp_class_id##_##_attr_name##_ptr __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTES_ATTRS = &__bt_plugin_##_type##_component_class_descriptor_attribute_##_id##_##_comp_class_id##_##_attr_name
 
@@ -675,10 +646,10 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  *
  * _id:            Plugin descriptor ID (C identifier).
  * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Initialization method (bt_component_class_source_init_method).
+ * _x:             Initialization method (bt_component_class_source_initialize_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD, _id, _comp_class_id, source, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INITIALIZE_METHOD, _id, _comp_class_id, source, _x)
 
 /*
  * Defines an initialization method attribute attached to a specific
@@ -686,10 +657,10 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  *
  * _id:            Plugin descriptor ID (C identifier).
  * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Initialization method (bt_component_class_filter_init_method).
+ * _x:             Initialization method (bt_component_class_filter_initialize_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD, _id, _comp_class_id, filter, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INITIALIZE_METHOD, _id, _comp_class_id, filter, _x)
 
 /*
  * Defines an initialization method attribute attached to a specific
@@ -697,10 +668,43 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  *
  * _id:            Plugin descriptor ID (C identifier).
  * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Initialization method (bt_component_class_sink_init_method).
+ * _x:             Initialization method (bt_component_class_sink_initialize_method).
+ */
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INITIALIZE_METHOD, _id, _comp_class_id, sink, _x)
+
+/*
+ * Defines a "get supported MIP versions" attribute attached to a
+ * specific source component class descriptor.
+ *
+ * _id:            Plugin descriptor ID (C identifier).
+ * _comp_class_id: Component class descriptor ID (C identifier).
+ * _x:             "Get supported MIP versions" method (bt_component_class_source_get_supported_mip_versions_method).
+ */
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_get_supported_mip_versions_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GET_SUPPORTED_MIP_VERSIONS, _id, _comp_class_id, source, _x)
+
+/*
+ * Defines a "get supported MIP versions" attribute attached to a
+ * specific filter component class descriptor.
+ *
+ * _id:            Plugin descriptor ID (C identifier).
+ * _comp_class_id: Component class descriptor ID (C identifier).
+ * _x:             "Get supported MIP versions" method (bt_component_class_filter_get_supported_mip_versions_method).
+ */
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_get_supported_mip_versions_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GET_SUPPORTED_MIP_VERSIONS, _id, _comp_class_id, filter, _x)
+
+/*
+ * Defines a "get supported MIP versions" attribute attached to a
+ * specific sink component class descriptor.
+ *
+ * _id:            Plugin descriptor ID (C identifier).
+ * _comp_class_id: Component class descriptor ID (C identifier).
+ * _x:             "Get supported MIP versions" method (bt_component_class_sink_get_supported_mip_versions_method).
  */
-#define BT_PLUGIN_SINK_COMPONENT_CLASS_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD, _id, _comp_class_id, sink, _x)
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_get_supported_mip_versions_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_GET_SUPPORTED_MIP_VERSIONS, _id, _comp_class_id, sink, _x)
 
 /*
  * Defines a finalization method attribute attached to a specific source
@@ -835,10 +839,10 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * _id:            Plugin descriptor ID (C identifier).
  * _comp_class_id: Component class descriptor ID (C identifier).
  * _x:             Iterator initialization method
- *                 (bt_component_class_source_message_iterator_init_method).
+ *                 (bt_component_class_source_message_iterator_initialize_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_msg_iter_init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INIT_METHOD, _id, _comp_class_id, source, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INITIALIZE_METHOD, _id, _comp_class_id, source, _x)
 
 /*
  * Defines an iterator finalize method attribute attached to a specific
@@ -849,56 +853,39 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * _x:             Iterator finalize method
  *                 (bt_component_class_source_message_iterator_finalize_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_FINALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_msg_iter_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD, _id, _comp_class_id, source, _x)
-
-/*
- * Defines an iterator "seek nanoseconds from origin" method attribute
- * attached to a specific source component class descriptor.
- *
- * _id:            Plugin descriptor ID (C identifier).
- * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Iterator "seek nanoseconds from origin" method
- *                 (bt_component_class_source_message_iterator_seek_ns_from_origin_method).
- */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_NS_FROM_ORIGIN_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_msg_iter_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD, _id, _comp_class_id, source, _x)
-
-/*
- * Defines an iterator "seek beginning" method attribute attached to a
- * specific source component class descriptor.
- *
- * _id:            Plugin descriptor ID (C identifier).
- * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Iterator "seek beginning" method
- *                 (bt_component_class_source_message_iterator_seek_beginning_method).
- */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_BEGINNING_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_msg_iter_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD, _id, _comp_class_id, source, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD, _id, _comp_class_id, source, _x)
 
 /*
- * Defines an iterator "can seek nanoseconds from origin" method
- * attribute attached to a specific source component class descriptor.
+ * Defines an iterator "seek nanoseconds from origin" and "can seek nanoseconds
+ * from origin" method attributes attached to a specific source component class
+ * descriptor.
  *
- * _id:            Plugin descriptor ID (C identifier).
- * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Iterator "can seek nanoseconds from origin" method
- *                 (bt_component_class_source_message_iterator_can_seek_ns_from_origin_method).
+ * _id:              Plugin descriptor ID (C identifier).
+ * _comp_class_id:   Component class descriptor ID (C identifier).
+ * _seek_method:     Iterator "seek nanoseconds from origin" method
+ *                   (bt_component_class_source_message_iterator_seek_ns_from_origin_method).
+ * _can_seek_method: Iterator "can seek nanoseconds from origin" method
+ *                   (bt_component_class_source_message_iterator_can_seek_ns_from_origin_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_NS_FROM_ORIGIN_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_msg_iter_can_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD, _id, _comp_class_id, source, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID(_id, _comp_class_id, _seek_method, _can_seek_method) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD, _id, _comp_class_id, source, _seek_method); \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_can_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD, _id, _comp_class_id, source, _can_seek_method)
 
 /*
- * Defines an iterator "can seek beginning" method attribute attached to a
- * specific source component class descriptor.
+ * Defines an iterator "seek beginning" and "can seek beginning" method
+ * attributes attached to a specific source component class descriptor.
  *
- * _id:            Plugin descriptor ID (C identifier).
- * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Iterator "can seek beginning" method
- *                 (bt_component_class_source_message_iterator_can_seek_beginning_method).
+ * _id:              Plugin descriptor ID (C identifier).
+ * _comp_class_id:   Component class descriptor ID (C identifier).
+ * _seek_method:     Iterator "seek beginning" method
+ *                   (bt_component_class_source_message_iterator_seek_beginning_method).
+ * _can_seek_method: Iterator "can seek beginning" method
+ *                   (bt_component_class_source_message_iterator_can_seek_beginning_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(source_msg_iter_can_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD, _id, _comp_class_id, source, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID(_id, _comp_class_id, _seek_method, _can_seek_method) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD, _id, _comp_class_id, source, _seek_method); \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_can_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD, _id, _comp_class_id, source, _can_seek_method)
 
 /*
  * Defines an iterator initialization method attribute attached to a
@@ -907,10 +894,10 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * _id:            Plugin descriptor ID (C identifier).
  * _comp_class_id: Component class descriptor ID (C identifier).
  * _x:             Iterator initialization method
- *                 (bt_component_class_filter_message_iterator_init_method).
+ *                 (bt_component_class_filter_message_iterator_initialize_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_msg_iter_init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INIT_METHOD, _id, _comp_class_id, filter, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_initialize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_INITIALIZE_METHOD, _id, _comp_class_id, filter, _x)
 
 /*
  * Defines an iterator finalize method attribute attached to a specific
@@ -921,56 +908,38 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * _x:             Iterator finalize method
  *                 (bt_component_class_filter_message_iterator_finalize_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_FINALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_msg_iter_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD, _id, _comp_class_id, filter, _x)
-
-/*
- * Defines an iterator "seek nanoseconds from origin" method attribute
- * attached to a specific filter component class descriptor.
- *
- * _id:            Plugin descriptor ID (C identifier).
- * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Iterator "seek nanoseconds from origin" method
- *                 (bt_component_class_filter_message_iterator_seek_ns_from_origin_method).
- */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_NS_FROM_ORIGIN_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_msg_iter_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD, _id, _comp_class_id, filter, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID(_id, _comp_class_id, _x) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_finalize_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_FINALIZE_METHOD, _id, _comp_class_id, filter, _x)
 
 /*
- * Defines an iterator "seek beginning" method attribute attached to a
- * specific filter component class descriptor.
+ * Defines an iterator "seek nanoseconds" and "can seek nanoseconds from origin"
+ * method attributes attached to a specific filter component class descriptor.
  *
- * _id:            Plugin descriptor ID (C identifier).
- * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Iterator "seek beginning" method
- *                 (bt_component_class_filter_message_iterator_seek_beginning_method).
+ * _id:              Plugin descriptor ID (C identifier).
+ * _comp_class_id:   Component class descriptor ID (C identifier).
+ * _seek_method:     Iterator "seek nanoseconds from origin" method
+ *                   (bt_component_class_filter_message_iterator_seek_ns_from_origin_method).
+ * _can_seek_method: Iterator "can seek nanoseconds from origin" method
+ *                   (bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_BEGINNING_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_msg_iter_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD, _id, _comp_class_id, filter, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID(_id, _comp_class_id, _seek_method, _can_seek_method) \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_NS_FROM_ORIGIN_METHOD, _id, _comp_class_id, filter, _seek_method); \
+       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_can_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD, _id, _comp_class_id, filter, _can_seek_method)
 
 /*
- * Defines an iterator "can seek nanoseconds from origin" method
- * attribute attached to a specific filter component class descriptor.
+ * Defines an iterator "seek beginning" and "can seek beginning" method
+ * attributes attached to a specific filter component class descriptor.
  *
- * _id:            Plugin descriptor ID (C identifier).
- * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Iterator "can seek nanoseconds from origin" method
- *                 (bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method).
- */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_NS_FROM_ORIGIN_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_msg_iter_can_seek_ns_from_origin_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_NS_FROM_ORIGIN_METHOD, _id, _comp_class_id, filter, _x)
-
-/*
- * Defines an iterator "can seek beginning" method attribute attached to a
- * specific filter component class descriptor.
- *
- * _id:            Plugin descriptor ID (C identifier).
- * _comp_class_id: Component class descriptor ID (C identifier).
- * _x:             Iterator "can seek beginning" method
- *                 (bt_component_class_filter_message_iterator_can_seek_beginning_method).
+ * _id:              Plugin descriptor ID (C identifier).
+ * _comp_class_id:   Component class descriptor ID (C identifier).
+ * _seek_method:     Iterator "seek beginning" method
+ *                   (bt_component_class_filter_message_iterator_seek_beginning_method).
+ * _can_seek_method: Iterator "can seek beginning" method
+ *                   (bt_component_class_filter_message_iterator_can_seek_beginning_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_METHOD_WITH_ID(_id, _comp_class_id, _x) \
-       __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_msg_iter_can_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD, _id, _comp_class_id, filter, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID(_id, _comp_class_id, _seek_method, _can_seek_method) \
+               __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_SEEK_BEGINNING_METHOD, _id, _comp_class_id, filter, _seek_method); \
+               __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(msg_iter_can_seek_beginning_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_MSG_ITER_CAN_SEEK_BEGINNING_METHOD, _id, _comp_class_id, filter, _can_seek_method);
 
 /*
  * Defines a plugin descriptor with an automatic ID.
@@ -983,17 +952,17 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * Defines a plugin initialization function attribute attached to the
  * automatic plugin descriptor.
  *
- * _x: Initialization function (bt_plugin_init_func).
+ * _x: Initialization function (bt_plugin_initialize_func).
  */
-#define BT_PLUGIN_INIT(_x)             BT_PLUGIN_INIT_WITH_ID(auto, _x)
+#define BT_PLUGIN_INITIALIZE_FUNC(_x)  BT_PLUGIN_INITIALIZE_FUNC_WITH_ID(auto, _x)
 
  /*
  * Defines a plugin exit function attribute attached to the automatic
  * plugin descriptor.
  *
- * _x: Exit function (bt_plugin_exit_func).
+ * _x: Exit function (bt_plugin_finalize_func).
  */
-#define BT_PLUGIN_EXIT(_x)             BT_PLUGIN_EXIT_WITH_ID(auto, _x)
+#define BT_PLUGIN_FINALIZE_FUNC(_x)    BT_PLUGIN_FINALIZE_FUNC_WITH_ID(auto, _x)
 
 /*
  * Defines an author attribute attached to the automatic plugin
@@ -1132,10 +1101,10 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * descriptor.
  *
  * _name: Component class name (C identifier).
- * _x:    Initialization method (bt_component_class_source_init_method).
+ * _x:    Initialization method (bt_component_class_source_initialize_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_INIT_METHOD(_name, _x) \
-       BT_PLUGIN_SOURCE_COMPONENT_CLASS_INIT_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_INITIALIZE_METHOD(_name, _x) \
+       BT_PLUGIN_SOURCE_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _x)
 
 /*
  * Defines an initialization method attribute attached to a filter
@@ -1143,10 +1112,10 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * descriptor.
  *
  * _name: Component class name (C identifier).
- * _x:    Initialization method (bt_component_class_filter_init_method).
+ * _x:    Initialization method (bt_component_class_filter_initialize_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_INIT_METHOD(_name, _x) \
-       BT_PLUGIN_FILTER_COMPONENT_CLASS_INIT_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_INITIALIZE_METHOD(_name, _x) \
+       BT_PLUGIN_FILTER_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _x)
 
 /*
  * Defines an initialization method attribute attached to a sink
@@ -1154,10 +1123,43 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * descriptor.
  *
  * _name: Component class name (C identifier).
- * _x:    Initialization method (bt_component_class_sink_init_method).
+ * _x:    Initialization method (bt_component_class_sink_initialize_method).
+ */
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_INITIALIZE_METHOD(_name, _x) \
+       BT_PLUGIN_SINK_COMPONENT_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _x)
+
+/*
+ * Defines a "get supported MIP versions" method attribute attached to a
+ * source component class descriptor which is attached to the automatic
+ * plugin descriptor.
+ *
+ * _name: Component class name (C identifier).
+ * _x:    Initialization method (bt_component_class_source_get_supported_mip_versions_method).
+ */
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD(_name, _x) \
+       BT_PLUGIN_SOURCE_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(auto, _name, _x)
+
+/*
+ * Defines a "get supported MIP versions" method attribute attached to a
+ * filter component class descriptor which is attached to the automatic
+ * plugin descriptor.
+ *
+ * _name: Component class name (C identifier).
+ * _x:    Initialization method (bt_component_class_filter_get_supported_mip_versions_method).
+ */
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD(_name, _x) \
+       BT_PLUGIN_FILTER_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(auto, _name, _x)
+
+/*
+ * Defines a "get supported MIP versions" method attribute attached to a
+ * sink component class descriptor which is attached to the automatic
+ * plugin descriptor.
+ *
+ * _name: Component class name (C identifier).
+ * _x:    Initialization method (bt_component_class_sink_get_supported_mip_versions_method).
  */
-#define BT_PLUGIN_SINK_COMPONENT_CLASS_INIT_METHOD(_name, _x) \
-       BT_PLUGIN_SINK_COMPONENT_CLASS_INIT_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD(_name, _x) \
+       BT_PLUGIN_SINK_COMPONENT_CLASS_GET_SUPPORTED_MIP_VERSIONS_METHOD_WITH_ID(auto, _name, _x)
 
 /*
  * Defines a finalization method attribute attached to a source component
@@ -1287,10 +1289,10 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  *
  * _name: Component class name (C identifier).
  * _x:    Iterator initialization method
- *        (bt_component_class_source_message_iterator_init_method).
+ *        (bt_component_class_source_message_iterator_initialize_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD(_name, _x) \
-       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(_name, _x) \
+       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _x)
 
 /*
  * Defines an iterator finalize method attribute attached to a source
@@ -1301,56 +1303,36 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * _x:    Iterator finalize method
  *        (bt_component_class_source_message_iterator_finalize_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_FINALIZE_METHOD(_name, _x) \
-       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_FINALIZE_METHOD_WITH_ID(auto, _name, _x)
-
-/*
- * Defines an iterator "seek nanoseconds from origin" method attribute
- * attached to a source component class descriptor which is attached to
- * the automatic plugin descriptor.
- *
- * _name: Component class name (C identifier).
- * _x:    Iterator "seek nanoseconds from origin" method
- *        (bt_component_class_source_message_iterator_seek_ns_from_origin_method).
- */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_NS_FROM_ORIGIN_METHOD(_name, _x) \
-       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_NS_FROM_ORIGIN_METHOD_WITH_ID(auto, _name, _x)
-
-/*
- * Defines an iterator "seek beginning" method attribute
- * attached to a source component class descriptor which is attached to
- * the automatic plugin descriptor.
- *
- * _name: Component class name (C identifier).
- * _x:    Iterator "seek beginning" method
- *        (bt_component_class_source_message_iterator_seek_beginning_method).
- */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_BEGINNING_METHOD(_name, _x) \
-       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_BEGINNING_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(_name, _x) \
+       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID(auto, _name, _x)
 
 /*
- * Defines an iterator "can seek nanoseconds from origin" method
- * attribute attached to a source component class descriptor which is
- * attached to the automatic plugin descriptor.
+ * Defines an iterator "seek nanoseconds from origin" and "can seek nanoseconds
+ * from origin" method attributes attached to a source component class
+ * descriptor which is attached to the automatic plugin descriptor.
  *
- * _name: Component class name (C identifier).
- * _x:    Iterator "can seek nanoseconds from origin" method
- *        (bt_component_class_source_message_iterator_can_seek_ns_from_origin_method).
+ * _name:            Component class name (C identifier).
+ * _seek_method:     Iterator "seek nanoseconds from origin" method
+ *                   (bt_component_class_source_message_iterator_seek_ns_from_origin_method).
+ * _can_seek_method: Iterator "can seek nanoseconds from origin" method
+ *                   (bt_component_class_source_message_iterator_can_seek_ns_from_origin_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_NS_FROM_ORIGIN_METHOD(_name, _x) \
-       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_NS_FROM_ORIGIN_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS(_name, _seek_method, _can_seek_method) \
+       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID(auto, _name, _seek_method, _can_seek_method)
 
 /*
- * Defines an iterator "can seek beginning" method attribute
- * attached to a source component class descriptor which is attached to
- * the automatic plugin descriptor.
+ * Defines an iterator "seek beginning" and "can seek beginning" method
+ * attributes attached to a source component class descriptor which is attached
+ * to the automatic plugin descriptor.
  *
- * _name: Component class name (C identifier).
- * _x:    Iterator "can seek beginning" method
- *        (bt_component_class_source_message_iterator_can_seek_beginning_method).
+ * _name:            Component class name (C identifier).
+ * _seek_method:     Iterator "can seek beginning" method
+ *                   (bt_component_class_source_message_iterator_can_seek_beginning_method).
+ * _can_seek_method: Iterator "can seek beginning" method
+ *                   (bt_component_class_source_message_iterator_seek_beginning_method).
  */
-#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_METHOD(_name, _x) \
-       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS(_name, _seek_method, _can_seek_method) \
+       BT_PLUGIN_SOURCE_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID(auto, _name, _seek_method, _can_seek_method)
 
 /*
  * Defines an iterator initialization method attribute attached to a
@@ -1359,10 +1341,10 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  *
  * _name: Component class name (C identifier).
  * _x:    Iterator initialization method
- *        (bt_component_class_filter_message_iterator_init_method).
+ *        (bt_component_class_filter_message_iterator_initialize_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD(_name, _x) \
-       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_INIT_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD(_name, _x) \
+       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_INITIALIZE_METHOD_WITH_ID(auto, _name, _x)
 
 /*
  * Defines an iterator finalize method attribute attached to a filter
@@ -1373,56 +1355,36 @@ struct __bt_plugin_component_class_descriptor_attribute const * const *__bt_get_
  * _x:    Iterator finalize method
  *        (bt_component_class_filter_message_iterator_finalize_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_FINALIZE_METHOD(_name, _x) \
-       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_FINALIZE_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD(_name, _x) \
+       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_FINALIZE_METHOD_WITH_ID(auto, _name, _x)
 
 /*
- * Defines an iterator "seek nanoseconds from origin" method attribute
- * attached to a filter component class descriptor which is attached to
- * the automatic plugin descriptor.
+ * Defines an iterator "seek nanosecconds from origin" and "can seek
+ * nanoseconds from origin" method attributes attached to a filter component
+ * class descriptor which is attached to the automatic plugin descriptor.
  *
- * _name: Component class name (C identifier).
- * _x:    Iterator "seek nanoseconds from origin" method
- *        (bt_component_class_filter_message_iterator_seek_ns_from_origin_method).
+ * _name:            Component class name (C identifier).
+ * _seek_method:     Iterator "seek nanoseconds from origin" method
+ *                   (bt_component_class_filter_message_iterator_seek_ns_from_origin_method).
+ * _can_seek_method: Iterator "can seek nanoseconds from origin" method
+ *                   (bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_NS_FROM_ORIGIN_METHOD(_name, _x) \
-       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_NS_FROM_ORIGIN_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS(_name, _seek_method, _can_seek_method) \
+       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_NS_FROM_ORIGIN_METHODS_WITH_ID(auto, _name, _seek_method, _can_seek_method)
 
 /*
- * Defines an iterator "seek beginning" method attribute
- * attached to a filter component class descriptor which is attached to
- * the automatic plugin descriptor.
+ * Defines an iterator "seek beginning" and "can seek beginning" method
+ * attributes attached to a filter component class descriptor which is attached
+ * to the automatic plugin descriptor.
  *
- * _name: Component class name (C identifier).
- * _x:    Iterator "seek beginning" method
- *        (bt_component_class_filter_message_iterator_seek_beginning_method).
- */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_BEGINNING_METHOD(_name, _x) \
-       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_SEEK_BEGINNING_METHOD_WITH_ID(auto, _name, _x)
-
-/*
- * Defines an iterator "can seek nanoseconds from origin" method
- * attribute attached to a filter component class descriptor which is
- * attached to the automatic plugin descriptor.
- *
- * _name: Component class name (C identifier).
- * _x:    Iterator "can seek nanoseconds from origin" method
- *        (bt_component_class_filter_message_iterator_can_seek_ns_from_origin_method).
- */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_NS_FROM_ORIGIN_METHOD(_name, _x) \
-       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_NS_FROM_ORIGIN_METHOD_WITH_ID(auto, _name, _x)
-
-/*
- * Defines an iterator "can seek beginning" method attribute
- * attached to a filter component class descriptor which is attached to
- * the automatic plugin descriptor.
- *
- * _name: Component class name (C identifier).
- * _x:    Iterator "can seek beginning" method
- *        (bt_component_class_filter_message_iterator_can_seek_beginning_method).
+ * _name:            Component class name (C identifier).
+ * _seek_method:     Iterator "seek beginning" method
+ *                   (bt_component_class_filter_message_iterator_seek_beginning_method).
+ * _can_seek_method: Iterator "can seek beginning" method
+ *                   (bt_component_class_filter_message_iterator_can_seek_beginning_method).
  */
-#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_METHOD(_name, _x) \
-       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CAN_SEEK_BEGINNING_METHOD_WITH_ID(auto, _name, _x)
+#define BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS(_name, _seek_method, _can_seek_method) \
+       BT_PLUGIN_FILTER_COMPONENT_CLASS_MESSAGE_ITERATOR_CLASS_SEEK_BEGINNING_METHODS_WITH_ID(auto, _name, _seek_method, _can_seek_method)
 
 #define BT_PLUGIN_MODULE() \
        static struct __bt_plugin_descriptor const * const __bt_plugin_descriptor_dummy __BT_PLUGIN_DESCRIPTOR_ATTRS = NULL; \
This page took 0.035515 seconds and 4 git commands to generate.