1 #ifndef BABELTRACE_PLUGIN_PLUGIN_DEV_H
2 #define BABELTRACE_PLUGIN_PLUGIN_DEV_H
5 * BabelTrace - Babeltrace Plug-in Development API
7 * This is the header that you need to include for the development of
8 * a Babeltrace plug-in.
10 * Copyright 2015 Jérémie Galarneau <jeremie.galarneau@efficios.com>
11 * Copyright 2017 Philippe Proulx <pproulx@efficios.com>
13 * Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
15 * Permission is hereby granted, free of charge, to any person obtaining a copy
16 * of this software and associated documentation files (the "Software"), to deal
17 * in the Software without restriction, including without limitation the rights
18 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19 * copies of the Software, and to permit persons to whom the Software is
20 * furnished to do so, subject to the following conditions:
22 * The above copyright notice and this permission notice shall be included in
23 * all copies or substantial portions of the Software.
25 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
35 #include <babeltrace/plugin/plugin.h>
36 #include <babeltrace/component/component-class.h>
37 #include <babeltrace/component/component-class-source.h>
38 #include <babeltrace/component/component-class-filter.h>
39 #include <babeltrace/component/component-class-sink.h>
46 * Plugin interface's version, not synced with Babeltrace's version
49 #define __BT_PLUGIN_VERSION_MAJOR 1
50 #define __BT_PLUGIN_VERSION_MINOR 0
52 /* Plugin initialization function type */
53 typedef enum bt_plugin_status (*bt_plugin_init_func
)(
54 struct bt_plugin
*plugin
);
56 /* Plugin exit function type */
57 typedef enum bt_plugin_status (*bt_plugin_exit_func
)(void);
60 * Function to call from a plugin's initialization function to add a
61 * component class to a plugin object.
63 extern enum bt_plugin_status
bt_plugin_add_component_class(
64 struct bt_plugin
*plugin
,
65 struct bt_component_class
*component_class
);
67 /* Plugin descriptor: describes a single plugin (internal use) */
68 struct __bt_plugin_descriptor
{
69 /* Plugin's interface major version number */
72 /* Plugin's interface minor version number */
77 } __attribute__((packed
));
79 /* Type of a plugin attribute (internal use) */
80 enum __bt_plugin_descriptor_attribute_type
{
81 BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_INIT
= 0,
82 BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_EXIT
= 1,
83 BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_AUTHOR
= 2,
84 BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_LICENSE
= 3,
85 BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION
= 4,
86 BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_VERSION
= 5,
89 /* Plugin (user) version */
90 struct __bt_plugin_descriptor_version
{
97 /* Plugin attribute (internal use) */
98 struct __bt_plugin_descriptor_attribute
{
99 /* Plugin descriptor to which to associate this attribute */
100 const struct __bt_plugin_descriptor
*plugin_descriptor
;
102 /* Name of the attribute's type for debug purposes */
103 const char *type_name
;
105 /* Attribute's type */
106 enum __bt_plugin_descriptor_attribute_type type
;
108 /* Attribute's value (depends on attribute's type) */
110 /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_INIT */
111 bt_plugin_init_func init
;
113 /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_EXIT */
114 bt_plugin_exit_func exit
;
116 /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_AUTHOR */
119 /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_LICENSE */
122 /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION */
123 const char *description
;
125 /* BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_VERSION */
126 struct __bt_plugin_descriptor_version version
;
128 } __attribute__((packed
));
130 /* Component class descriptor (internal use) */
131 struct __bt_plugin_component_class_descriptor
{
133 * Plugin descriptor to which to associate this component
136 const struct __bt_plugin_descriptor
*plugin_descriptor
;
138 /* Component class name */
141 /* Component class type */
142 enum bt_component_class_type type
;
144 /* Mandatory methods (depends on component class type) */
146 /* BT_COMPONENT_CLASS_TYPE_SOURCE */
148 bt_component_class_notification_iterator_get_method notif_iter_get
;
149 bt_component_class_notification_iterator_next_method notif_iter_next
;
152 /* BT_COMPONENT_CLASS_TYPE_FILTER */
154 bt_component_class_notification_iterator_get_method notif_iter_get
;
155 bt_component_class_notification_iterator_next_method notif_iter_next
;
158 /* BT_COMPONENT_CLASS_TYPE_SINK */
160 bt_component_class_sink_consume_method consume
;
163 } __attribute__((packed
));
165 /* Type of a component class attribute (internal use) */
166 enum __bt_plugin_component_class_descriptor_attribute_type
{
167 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION
= 0,
168 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP
= 1,
169 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD
= 2,
170 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESTROY_METHOD
= 3,
171 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FILTER_ADD_ITERATOR_METHOD
= 4,
172 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_SINK_ADD_ITERATOR_METHOD
= 5,
173 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_INIT_METHOD
= 6,
174 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_DESTROY_METHOD
= 7,
175 BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_SEEK_TIME_METHOD
= 8,
178 /* Component class attribute (internal use) */
179 struct __bt_plugin_component_class_descriptor_attribute
{
181 * Component class plugin attribute to which to associate this
182 * component class attribute.
184 const struct __bt_plugin_component_class_descriptor
*comp_class_descriptor
;
186 /* Name of the attribute's type for debug purposes */
187 const char *type_name
;
189 /* Attribute's type */
190 enum __bt_plugin_component_class_descriptor_attribute_type type
;
192 /* Attribute's value (depends on attribute's type) */
194 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION */
195 const char *description
;
197 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP */
200 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD */
201 bt_component_class_init_method init_method
;
203 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESTROY_METHOD */
204 bt_component_class_destroy_method destroy_method
;
206 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FILTER_ADD_ITERATOR_METHOD */
207 bt_component_class_filter_add_iterator_method filter_add_iterator_method
;
209 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_SINK_ADD_ITERATOR_METHOD */
210 bt_component_class_sink_add_iterator_method sink_add_iterator_method
;
212 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_INIT_METHOD */
213 bt_component_class_notification_iterator_init_method notif_iter_init_method
;
215 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_DESTROY_METHOD */
216 bt_component_class_notification_iterator_destroy_method notif_iter_destroy_method
;
218 /* BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_SEEK_TIME_METHOD */
219 bt_component_class_notification_iterator_seek_time_method notif_iter_seek_time_method
;
221 } __attribute__((packed
));
224 * Variable attributes for a plugin descriptor pointer to be added to
225 * the plugin descriptor section (internal use).
227 #define __BT_PLUGIN_DESCRIPTOR_ATTRS \
228 __attribute__((section("__bt_plugin_descriptors"), used))
231 * Variable attributes for a plugin attribute pointer to be added to
232 * the plugin attribute section (internal use).
234 #define __BT_PLUGIN_DESCRIPTOR_ATTRIBUTES_ATTRS \
235 __attribute__((section("__bt_plugin_descriptor_attributes"), used))
238 * Variable attributes for a component class descriptor pointer to be
239 * added to the component class descriptor section (internal use).
241 #define __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRS \
242 __attribute__((section("__bt_plugin_component_class_descriptors"), used))
245 * Variable attributes for a component class descriptor attribute
246 * pointer to be added to the component class descriptor attribute
247 * section (internal use).
249 #define __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTES_ATTRS \
250 __attribute__((section("__bt_plugin_component_class_descriptor_attributes"), used))
253 * Declares a plugin descriptor pointer variable with a custom ID.
255 * _id: ID (any valid C identifier except `auto`).
257 #define BT_PLUGIN_DECLARE(_id) extern struct __bt_plugin_descriptor __bt_plugin_descriptor_##_id
260 * Defines a plugin descriptor with a custom ID.
262 * _id: ID (any valid C identifier except `auto`).
263 * _name: Plugin's name (C string).
265 #define BT_PLUGIN_WITH_ID(_id, _name) \
266 struct __bt_plugin_descriptor __bt_plugin_descriptor_##_id = { \
267 .major = __BT_PLUGIN_VERSION_MAJOR, \
268 .minor = __BT_PLUGIN_VERSION_MINOR, \
271 static struct __bt_plugin_descriptor const * const __bt_plugin_descriptor_##_id##_ptr __BT_PLUGIN_DESCRIPTOR_ATTRS = &__bt_plugin_descriptor_##_id; \
272 extern struct __bt_plugin_descriptor const *__start___bt_plugin_descriptors; \
273 extern struct __bt_plugin_descriptor const *__stop___bt_plugin_descriptors
276 * Defines a plugin attribute (generic, internal use).
278 * _attr_name: Name of the attribute (C identifier).
279 * _attr_type: Type of the attribute (enum __bt_plugin_descriptor_attribute_type).
280 * _id: Plugin descriptor ID (C identifier).
283 #define __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(_attr_name, _attr_type, _id, _x) \
284 static struct __bt_plugin_descriptor_attribute __bt_plugin_descriptor_attribute_##_id##_##_attr_name = { \
285 .plugin_descriptor = &__bt_plugin_descriptor_##_id, \
286 .type_name = #_attr_name, \
287 .type = _attr_type, \
288 .value._attr_name = _x, \
290 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; \
291 extern struct __bt_plugin_descriptor_attribute const *__start___bt_plugin_descriptor_attributes; \
292 extern struct __bt_plugin_descriptor_attribute const *__stop___bt_plugin_descriptor_attributes
295 * Defines a plugin initialization function attribute attached to a
296 * specific plugin descriptor.
298 * _id: Plugin descriptor ID (C identifier).
299 * _x: Initialization function (bt_plugin_init_func).
301 #define BT_PLUGIN_INIT_WITH_ID(_id, _x) \
302 __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(init, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_INIT, _id, _x)
305 * Defines a plugin exit function attribute attached to a specific
308 * _id: Plugin descriptor ID (C identifier).
309 * _x: Exit function (bt_plugin_exit_func).
311 #define BT_PLUGIN_EXIT_WITH_ID(_id, _x) \
312 __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(exit, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_EXIT, _id, _x)
315 * Defines an author attribute attached to a specific plugin descriptor.
317 * _id: Plugin descriptor ID (C identifier).
318 * _x: Author (C string).
320 #define BT_PLUGIN_AUTHOR_WITH_ID(_id, _x) \
321 __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(author, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_AUTHOR, _id, _x)
324 * Defines a license attribute attached to a specific plugin descriptor.
326 * _id: Plugin descriptor ID (C identifier).
327 * _x: License (C string).
329 #define BT_PLUGIN_LICENSE_WITH_ID(_id, _x) \
330 __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(license, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_LICENSE, _id, _x)
333 * Defines a description attribute attached to a specific plugin
336 * _id: Plugin descriptor ID (C identifier).
337 * _x: Description (C string).
339 #define BT_PLUGIN_DESCRIPTION_WITH_ID(_id, _x) \
340 __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(description, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION, _id, _x)
342 #define __BT_PLUGIN_VERSION_STRUCT_VALUE(_major, _minor, _patch, _extra) \
343 {.major = _major, .minor = _minor, .patch = _patch, .extra = _extra,}
346 * Defines a version attribute attached to a specific plugin descriptor.
348 * _id: Plugin descriptor ID (C identifier).
349 * _major: Plugin's major version (uint32_t).
350 * _minor: Plugin's minor version (uint32_t).
351 * _patch: Plugin's patch version (uint32_t).
352 * _extra: Plugin's version extra information (C string).
354 #define BT_PLUGIN_VERSION_WITH_ID(_id, _major, _minor, _patch, _extra) \
355 __BT_PLUGIN_DESCRIPTOR_ATTRIBUTE(version, BT_PLUGIN_DESCRIPTOR_ATTRIBUTE_TYPE_VERSION, _id, __BT_PLUGIN_VERSION_STRUCT_VALUE(_major, _minor, _patch, _extra))
358 * Declaration of start and stop symbols of component class descriptors
361 #define __BT_PLUGIN_DECL_COMPONENT_CLASS_DESCRIPTORS_SECTION_START_STOP \
362 extern struct __bt_plugin_component_class_descriptor const *__start___bt_plugin_component_class_descriptors; \
363 extern struct __bt_plugin_component_class_descriptor const *__stop___bt_plugin_component_class_descriptors
366 * Defines a source component class descriptor with a custom ID.
368 * _id: ID (any valid C identifier except `auto`).
369 * _comp_class_id: Component class ID (C identifier).
370 * _name: Component class name (C string).
371 * _notif_iter_get_method: Component class's iterator get method
372 * (bt_component_class_notification_iterator_get_method).
373 * _notif_iter_next_method: Component class's iterator next method
374 * (bt_component_class_notification_iterator_next_method).
376 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_WITH_ID(_id, _comp_class_id, _name, _notif_iter_get_method, _notif_iter_next_method) \
377 static struct __bt_plugin_component_class_descriptor __bt_plugin_source_component_class_descriptor_##_id##_##_comp_class_id = { \
378 .plugin_descriptor = &__bt_plugin_descriptor_##_id, \
380 .type = BT_COMPONENT_CLASS_TYPE_SOURCE, \
381 .methods.source = { \
382 .notif_iter_get = _notif_iter_get_method, \
383 .notif_iter_next = _notif_iter_next_method, \
386 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; \
387 __BT_PLUGIN_DECL_COMPONENT_CLASS_DESCRIPTORS_SECTION_START_STOP
390 * Defines a filter component class descriptor with a custom ID.
392 * _id: ID (any valid C identifier except `auto`).
393 * _comp_class_id: Component class ID (C identifier).
394 * _name: Component class name (C string).
395 * _notif_iter_get_method: Component class's iterator get method
396 * (bt_component_class_notification_iterator_get_method).
397 * _notif_iter_next_method: Component class's iterator next method
398 * (bt_component_class_notification_iterator_next_method).
400 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_WITH_ID(_id, _comp_class_id, _name, _notif_iter_get_method, _notif_iter_next_method) \
401 static struct __bt_plugin_component_class_descriptor __bt_plugin_filter_component_class_descriptor_##_id##_##_comp_class_id = { \
402 .plugin_descriptor = &__bt_plugin_descriptor_##_id, \
404 .type = BT_COMPONENT_CLASS_TYPE_FILTER, \
405 .methods.filter = { \
406 .notif_iter_get = _notif_iter_get_method, \
407 .notif_iter_next = _notif_iter_next_method, \
410 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; \
411 __BT_PLUGIN_DECL_COMPONENT_CLASS_DESCRIPTORS_SECTION_START_STOP
414 * Defines a sink component class descriptor with a custom ID.
416 * _id: ID (any valid C identifier except `auto`).
417 * _comp_class_id: Component class ID (C identifier).
418 * _name: Component class name (C string).
419 * _consume_method: Component class's iterator consume method
420 * (bt_component_class_sink_consume_method).
422 #define BT_PLUGIN_SINK_COMPONENT_CLASS_WITH_ID(_id, _comp_class_id, _name, _consume_method) \
423 static struct __bt_plugin_component_class_descriptor __bt_plugin_sink_component_class_descriptor_##_id##_##_comp_class_id = { \
424 .plugin_descriptor = &__bt_plugin_descriptor_##_id, \
426 .type = BT_COMPONENT_CLASS_TYPE_SINK, \
428 .consume = _consume_method, \
431 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; \
432 __BT_PLUGIN_DECL_COMPONENT_CLASS_DESCRIPTORS_SECTION_START_STOP
435 * Defines a component class descriptor attribute (generic, internal
438 * _id: Plugin descriptor ID (C identifier).
439 * _comp_class_id: Component class ID (C identifier).
440 * _type: Component class type (`source`, `filter`, or `sink`).
441 * _attr_name: Name of the attribute (C identifier).
442 * _attr_type: Type of the attribute
443 * (enum __bt_plugin_descriptor_attribute_type).
446 #define __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(_attr_name, _attr_type, _id, _comp_class_id, _type, _x) \
447 static struct __bt_plugin_component_class_descriptor_attribute __bt_plugin_##_type##_component_class_descriptor_attribute_##_id##_##_comp_class_id##_##_attr_name = { \
448 .comp_class_descriptor = &__bt_plugin_##_type##_component_class_descriptor_##_id##_##_comp_class_id, \
449 .type_name = #_attr_name, \
450 .type = _attr_type, \
451 .value._attr_name = _x, \
453 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; \
454 extern struct __bt_plugin_component_class_descriptor_attribute const *__start___bt_plugin_component_class_descriptor_attributes; \
455 extern struct __bt_plugin_component_class_descriptor_attribute const *__stop___bt_plugin_component_class_descriptor_attributes
458 * Defines a description attribute attached to a specific source
459 * component class descriptor.
461 * _id: Plugin descriptor ID (C identifier).
462 * _comp_class_id: Component class descriptor ID (C identifier).
463 * _x: Description (C string).
465 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION_WITH_ID(_id, _comp_class_id, _x) \
466 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(description, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION, _id, _comp_class_id, source, _x)
469 * Defines a description attribute attached to a specific filter
470 * component class descriptor.
472 * _id: Plugin descriptor ID (C identifier).
473 * _comp_class_id: Component class descriptor ID (C identifier).
474 * _x: Description (C string).
476 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION_WITH_ID(_id, _comp_class_id, _x) \
477 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(description, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION, _id, _comp_class_id, filter, _x)
480 * Defines a description attribute attached to a specific sink
481 * component class descriptor.
483 * _id: Plugin descriptor ID (C identifier).
484 * _comp_class_id: Component class descriptor ID (C identifier).
485 * _x: Description (C string).
487 #define BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION_WITH_ID(_id, _comp_class_id, _x) \
488 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(description, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESCRIPTION, _id, _comp_class_id, sink, _x)
491 * Defines a help attribute attached to a specific source component
494 * _id: Plugin descriptor ID (C identifier).
495 * _comp_class_id: Component class descriptor ID (C identifier).
496 * _x: Help (C string).
498 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_HELP_WITH_ID(_id, _comp_class_id, _x) \
499 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(help, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP, _id, _comp_class_id, source, _x)
502 * Defines a help attribute attached to a specific filter component
505 * _id: Plugin descriptor ID (C identifier).
506 * _comp_class_id: Component class descriptor ID (C identifier).
507 * _x: Help (C string).
509 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_HELP_WITH_ID(_id, _comp_class_id, _x) \
510 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(help, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP, _id, _comp_class_id, filter, _x)
513 * Defines a help attribute attached to a specific sink component class
516 * _id: Plugin descriptor ID (C identifier).
517 * _comp_class_id: Component class descriptor ID (C identifier).
518 * _x: Help (C string).
520 #define BT_PLUGIN_SINK_COMPONENT_CLASS_HELP_WITH_ID(_id, _comp_class_id, _x) \
521 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(help, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_HELP, _id, _comp_class_id, sink, _x)
524 * Defines an initialization method attribute attached to a specific
525 * source component class descriptor.
527 * _id: Plugin descriptor ID (C identifier).
528 * _comp_class_id: Component class descriptor ID (C identifier).
529 * _x: Initialization method (bt_component_class_init_method).
531 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
532 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD, _id, _comp_class_id, source, _x)
535 * Defines an initialization method attribute attached to a specific
536 * filter component class descriptor.
538 * _id: Plugin descriptor ID (C identifier).
539 * _comp_class_id: Component class descriptor ID (C identifier).
540 * _x: Initialization method (bt_component_class_init_method).
542 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
543 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD, _id, _comp_class_id, filter, _x)
546 * Defines an initialization method attribute attached to a specific
547 * sink component class descriptor.
549 * _id: Plugin descriptor ID (C identifier).
550 * _comp_class_id: Component class descriptor ID (C identifier).
551 * _x: Initialization method (bt_component_class_init_method).
553 #define BT_PLUGIN_SINK_COMPONENT_CLASS_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
554 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_INIT_METHOD, _id, _comp_class_id, sink, _x)
557 * Defines a destroy method attribute attached to a specific source
558 * component class descriptor.
560 * _id: Plugin descriptor ID (C identifier).
561 * _comp_class_id: Component class descriptor ID (C identifier).
562 * _x: Destroy method (bt_component_class_destroy_method).
564 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESTROY_METHOD_WITH_ID(_id, _comp_class_id, _x) \
565 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(destroy_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESTROY_METHOD, _id, _comp_class_id, source, _x)
568 * Defines a destroy method attribute attached to a specific filter
569 * component class descriptor.
571 * _id: Plugin descriptor ID (C identifier).
572 * _comp_class_id: Component class descriptor ID (C identifier).
573 * _x: Destroy method (bt_component_class_destroy_method).
575 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_DESTROY_METHOD_WITH_ID(_id, _comp_class_id, _x) \
576 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(destroy_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESTROY_METHOD, _id, _comp_class_id, filter, _x)
579 * Defines a destroy method attribute attached to a specific sink
580 * component class descriptor.
582 * _id: Plugin descriptor ID (C identifier).
583 * _comp_class_id: Component class descriptor ID (C identifier).
584 * _x: Destroy method (bt_component_class_destroy_method).
586 #define BT_PLUGIN_SINK_COMPONENT_CLASS_DESTROY_METHOD_WITH_ID(_id, _comp_class_id, _x) \
587 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(destroy_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_DESTROY_METHOD, _id, _comp_class_id, sink, _x)
590 * Defines an add iterator method attribute attached to a specific
591 * filter component class descriptor.
593 * _id: Plugin descriptor ID (C identifier).
594 * _comp_class_id: Component class descriptor ID (C identifier).
595 * _x: Add iterator method
596 * (bt_component_class_filter_add_iterator_method).
598 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_ADD_ITERATOR_METHOD_WITH_ID(_id, _comp_class_id, _x) \
599 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(filter_add_iterator_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_FILTER_ADD_ITERATOR_METHOD, _id, _comp_class_id, filter, _x)
602 * Defines an add iterator method attribute attached to a specific
603 * sink component class descriptor.
605 * _id: Plugin descriptor ID (C identifier).
606 * _comp_class_id: Component class descriptor ID (C identifier).
607 * _x: Add iterator method
608 * (bt_component_class_sink_add_iterator_method).
610 #define BT_PLUGIN_SINK_COMPONENT_CLASS_ADD_ITERATOR_METHOD_WITH_ID(_id, _comp_class_id, _x) \
611 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(sink_add_iterator_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_SINK_ADD_ITERATOR_METHOD, _id, _comp_class_id, sink, _x)
614 * Defines an iterator initialization method attribute attached to a
615 * specific source component class descriptor.
617 * _id: Plugin descriptor ID (C identifier).
618 * _comp_class_id: Component class descriptor ID (C identifier).
619 * _x: Iterator initialization method
620 * (bt_component_class_notification_iterator_init_method).
622 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
623 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(notif_iter_init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_INIT_METHOD, _id, _comp_class_id, source, _x)
626 * Defines an iterator destroy method attribute attached to a specific
627 * source component class descriptor.
629 * _id: Plugin descriptor ID (C identifier).
630 * _comp_class_id: Component class descriptor ID (C identifier).
631 * _x: Iterator destroy method
632 * (bt_component_class_notification_iterator_destroy_method).
634 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_DESTROY_METHOD_WITH_ID(_id, _comp_class_id, _x) \
635 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(notif_iter_destroy_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_DESTROY_METHOD, _id, _comp_class_id, source, _x)
638 * Defines an iterator seek time method attribute attached to a specific
639 * source component class descriptor.
641 * _id: Plugin descriptor ID (C identifier).
642 * _comp_class_id: Component class descriptor ID (C identifier).
643 * _x: Iterator seek time method
644 * (bt_component_class_notification_iterator_seek_time_method).
646 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_SEEK_TIME_METHOD_WITH_ID(_id, _comp_class_id, _x) \
647 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(notif_iter_seek_time_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_SEEK_TIME_METHOD, _id, _comp_class_id, source, _x)
650 * Defines an iterator initialization method attribute attached to a
651 * specific filter component class descriptor.
653 * _id: Plugin descriptor ID (C identifier).
654 * _comp_class_id: Component class descriptor ID (C identifier).
655 * _x: Iterator initialization method
656 * (bt_component_class_notification_iterator_init_method).
658 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD_WITH_ID(_id, _comp_class_id, _x) \
659 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(notif_iter_init_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_INIT_METHOD, _id, _comp_class_id, filter, _x)
662 * Defines an iterator destroy method attribute attached to a specific
663 * filter component class descriptor.
665 * _id: Plugin descriptor ID (C identifier).
666 * _comp_class_id: Component class descriptor ID (C identifier).
667 * _x: Iterator destroy method
668 * (bt_component_class_notification_iterator_destroy_method).
670 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_DESTROY_METHOD_WITH_ID(_id, _comp_class_id, _x) \
671 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(notif_iter_destroy_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_DESTROY_METHOD, _id, _comp_class_id, filter, _x)
674 * Defines an iterator seek time method attribute attached to a specific
675 * filter component class descriptor.
677 * _id: Plugin descriptor ID (C identifier).
678 * _comp_class_id: Component class descriptor ID (C identifier).
679 * _x: Iterator seek time method
680 * (bt_component_class_notification_iterator_seek_time_method).
682 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_SEEK_TIME_METHOD_WITH_ID(_id, _comp_class_id, _x) \
683 __BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE(notif_iter_seek_time_method, BT_PLUGIN_COMPONENT_CLASS_DESCRIPTOR_ATTRIBUTE_TYPE_NOTIF_ITER_SEEK_TIME_METHOD, _id, _comp_class_id, filter, _x)
686 * Defines a plugin descriptor with an automatic ID.
688 * _name: Plugin's name (C string).
690 #define BT_PLUGIN(_name) static BT_PLUGIN_WITH_ID(auto, #_name)
693 * Defines a plugin initialization function attribute attached to the
694 * automatic plugin descriptor.
696 * _x: Initialization function (bt_plugin_init_func).
698 #define BT_PLUGIN_INIT(_x) BT_PLUGIN_INIT_WITH_ID(auto, _x)
701 * Defines a plugin exit function attribute attached to the automatic
704 * _x: Exit function (bt_plugin_exit_func).
706 #define BT_PLUGIN_EXIT(_x) BT_PLUGIN_EXIT_WITH_ID(auto, _x)
709 * Defines an author attribute attached to the automatic plugin
712 * _x: Author (C string).
714 #define BT_PLUGIN_AUTHOR(_x) BT_PLUGIN_AUTHOR_WITH_ID(auto, _x)
717 * Defines a license attribute attached to the automatic plugin
720 * _x: License (C string).
722 #define BT_PLUGIN_LICENSE(_x) BT_PLUGIN_LICENSE_WITH_ID(auto, _x)
725 * Defines a description attribute attached to the automatic plugin
728 * _x: Description (C string).
730 #define BT_PLUGIN_DESCRIPTION(_x) BT_PLUGIN_DESCRIPTION_WITH_ID(auto, _x)
733 * Defines a version attribute attached to the automatic plugin
736 * _major: Plugin's major version (uint32_t).
737 * _minor: Plugin's minor version (uint32_t).
738 * _patch: Plugin's patch version (uint32_t).
739 * _extra: Plugin's version extra information (C string).
741 #define BT_PLUGIN_VERSION(_major, _minor, _patch, _extra) BT_PLUGIN_VERSION_WITH_ID(auto, _major, _minor, _patch, _extra)
744 * Defines a source component class attached to the automatic plugin
745 * descriptor. Its ID is the same as its name, hence its name must be a
746 * C identifier in this version.
748 * _name: Component class name (C identifier).
749 * _notif_iter_get_method: Component class's iterator get method
750 * (bt_component_class_notification_iterator_get_method).
751 * _notif_iter_next_method: Component class's iterator next method
752 * (bt_component_class_notification_iterator_next_method).
754 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS(_name, _notif_iter_get_method, _notif_iter_next_method) \
755 BT_PLUGIN_SOURCE_COMPONENT_CLASS_WITH_ID(auto, _name, #_name, _notif_iter_get_method, _notif_iter_next_method)
758 * Defines a filter component class attached to the automatic plugin
759 * descriptor. Its ID is the same as its name, hence its name must be a
760 * C identifier in this version.
762 * _name: Component class name (C identifier).
763 * _notif_iter_get_method: Component class's iterator get method
764 * (bt_component_class_notification_iterator_get_method).
765 * _notif_iter_next_method: Component class's iterator next method
766 * (bt_component_class_notification_iterator_next_method).
768 #define BT_PLUGIN_FILTER_COMPONENT_CLASS(_name, _notif_iter_get_method, _notif_iter_next_method) \
769 BT_PLUGIN_FILTER_COMPONENT_CLASS_WITH_ID(auto, _name, #_name, _notif_iter_get_method, _notif_iter_next_method)
772 * Defines a sink component class attached to the automatic plugin
773 * descriptor. Its ID is the same as its name, hence its name must be a
774 * C identifier in this version.
776 * _name: Component class name (C identifier).
777 * _consume_method: Component class's consume method
778 * (bt_component_class_sink_consume_method).
780 #define BT_PLUGIN_SINK_COMPONENT_CLASS(_name, _consume_method) \
781 BT_PLUGIN_SINK_COMPONENT_CLASS_WITH_ID(auto, _name, #_name, _consume_method)
784 * Defines a description attribute attached to a source component class
785 * descriptor which is attached to the automatic plugin descriptor.
787 * _name: Component class name (C identifier).
788 * _x: Description (C string).
790 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION(_name, _x) \
791 BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESCRIPTION_WITH_ID(auto, _name, _x)
794 * Defines a description attribute attached to a filter component class
795 * descriptor which is attached to the automatic plugin descriptor.
797 * _name: Component class name (C identifier).
798 * _x: Description (C string).
800 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION(_name, _x) \
801 BT_PLUGIN_FILTER_COMPONENT_CLASS_DESCRIPTION_WITH_ID(auto, _name, _x)
804 * Defines a description attribute attached to a sink component class
805 * descriptor which is attached to the automatic plugin descriptor.
807 * _name: Component class name (C identifier).
808 * _x: Description (C string).
810 #define BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION(_name, _x) \
811 BT_PLUGIN_SINK_COMPONENT_CLASS_DESCRIPTION_WITH_ID(auto, _name, _x)
814 * Defines a help attribute attached to a source component class
815 * descriptor which is attached to the automatic plugin descriptor.
817 * _name: Component class name (C identifier).
818 * _x: Help (C string).
820 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_HELP(_name, _x) \
821 BT_PLUGIN_SOURCE_COMPONENT_CLASS_HELP_WITH_ID(auto, _name, _x)
824 * Defines a help attribute attached to a filter component class
825 * descriptor which is attached to the automatic plugin descriptor.
827 * _name: Component class name (C identifier).
828 * _x: Help (C string).
830 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_HELP(_name, _x) \
831 BT_PLUGIN_FILTER_COMPONENT_CLASS_HELP_WITH_ID(auto, _name, _x)
834 * Defines a help attribute attached to a sink component class
835 * descriptor which is attached to the automatic plugin descriptor.
837 * _name: Component class name (C identifier).
838 * _x: Help (C string).
840 #define BT_PLUGIN_SINK_COMPONENT_CLASS_HELP(_name, _x) \
841 BT_PLUGIN_SINK_COMPONENT_CLASS_HELP_WITH_ID(auto, _name, _x)
844 * Defines an initialization method attribute attached to a source
845 * component class descriptor which is attached to the automatic plugin
848 * _name: Component class name (C identifier).
849 * _x: Initialization method (bt_component_class_init_method).
851 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_INIT_METHOD(_name, _x) \
852 BT_PLUGIN_SOURCE_COMPONENT_CLASS_INIT_METHOD_WITH_ID(auto, _name, _x)
855 * Defines an initialization method attribute attached to a filter
856 * component class descriptor which is attached to the automatic plugin
859 * _name: Component class name (C identifier).
860 * _x: Initialization method (bt_component_class_init_method).
862 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_INIT_METHOD(_name, _x) \
863 BT_PLUGIN_FILTER_COMPONENT_CLASS_INIT_METHOD_WITH_ID(auto, _name, _x)
866 * Defines an initialization method attribute attached to a sink
867 * component class descriptor which is attached to the automatic plugin
870 * _name: Component class name (C identifier).
871 * _x: Initialization method (bt_component_class_init_method).
873 #define BT_PLUGIN_SINK_COMPONENT_CLASS_INIT_METHOD(_name, _x) \
874 BT_PLUGIN_SINK_COMPONENT_CLASS_INIT_METHOD_WITH_ID(auto, _name, _x)
877 * Defines a destroy method attribute attached to a source component
878 * class descriptor which is attached to the automatic plugin
881 * _name: Component class name (C identifier).
882 * _x: Initialization method (bt_component_class_destroy_method).
884 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESTROY_METHOD(_name, _x) \
885 BT_PLUGIN_SOURCE_COMPONENT_CLASS_DESTROY_METHOD_WITH_ID(auto, _name, _x)
888 * Defines a destroy method attribute attached to a filter component
889 * class descriptor which is attached to the automatic plugin
892 * _name: Component class name (C identifier).
893 * _x: Initialization method (bt_component_class_destroy_method).
895 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_DESTROY_METHOD(_name, _x) \
896 BT_PLUGIN_FILTER_COMPONENT_CLASS_DESTROY_METHOD_WITH_ID(auto, _name, _x)
899 * Defines a destroy method attribute attached to a sink component class
900 * descriptor which is attached to the automatic plugin descriptor.
902 * _name: Component class name (C identifier).
903 * _x: Initialization method (bt_component_class_destroy_method).
905 #define BT_PLUGIN_SINK_COMPONENT_CLASS_DESTROY_METHOD(_name, _x) \
906 BT_PLUGIN_SINK_COMPONENT_CLASS_DESTROY_METHOD_WITH_ID(auto, _name, _x)
909 * Defines an add iterator method attribute attached to a filter
910 * component class descriptor which is attached to the automatic plugin
913 * _name: Component class name (C identifier).
914 * _x: Add iterator method (bt_component_class_filter_add_iterator_method).
916 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_ADD_ITERATOR_METHOD(_name, _x) \
917 BT_PLUGIN_FILTER_COMPONENT_CLASS_ADD_ITERATOR_METHOD_WITH_ID(auto, _name, _x)
920 * Defines an add iterator method attribute attached to a sink
921 * component class descriptor which is attached to the automatic plugin
924 * _name: Component class name (C identifier).
925 * _x: Add iterator method (bt_component_class_sink_add_iterator_method).
927 #define BT_PLUGIN_SINK_COMPONENT_CLASS_ADD_ITERATOR_METHOD(_name, _x) \
928 BT_PLUGIN_SINK_COMPONENT_CLASS_ADD_ITERATOR_METHOD_WITH_ID(auto, _name, _x)
931 * Defines an iterator initialization method attribute attached to a
932 * source component class descriptor which is attached to the automatic
935 * _name: Component class name (C identifier).
936 * _x: Iterator initialization method
937 * (bt_component_class_notification_iterator_init_method).
939 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD(_name, _x) \
940 BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD_WITH_ID(auto, _name, _x)
943 * Defines an iterator destroy method attribute attached to a source
944 * component class descriptor which is attached to the automatic plugin
947 * _name: Component class name (C identifier).
948 * _x: Iterator destroy method
949 * (bt_component_class_notification_iterator_destroy_method).
951 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_DESTROY_METHOD(_name, _x) \
952 BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_DESTROY_METHOD_WITH_ID(auto, _name, _x)
955 * Defines an iterator seek time method attribute attached to a source
956 * component class descriptor which is attached to the automatic plugin
959 * _name: Component class name (C identifier).
960 * _x: Iterator seek time method
961 * (bt_component_class_notification_iterator_seek_time_method).
963 #define BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_SEEK_TIME_METHOD(_name, _x) \
964 BT_PLUGIN_SOURCE_COMPONENT_CLASS_NOTIFICATION_ITERATOR_SEEK_TIME_METHOD_WITH_ID(auto, _name, _x)
967 * Defines an iterator initialization method attribute attached to a
968 * filter component class descriptor which is attached to the automatic
971 * _name: Component class name (C identifier).
972 * _x: Iterator initialization method
973 * (bt_component_class_notification_iterator_init_method).
975 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD(_name, _x) \
976 BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_INIT_METHOD_WITH_ID(auto, _name, _x)
979 * Defines an iterator destroy method attribute attached to a filter
980 * component class descriptor which is attached to the automatic plugin
983 * _name: Component class name (C identifier).
984 * _x: Iterator destroy method
985 * (bt_component_class_notification_iterator_destroy_method).
987 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_DESTROY_METHOD(_name, _x) \
988 BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_DESTROY_METHOD_WITH_ID(auto, _name, _x)
991 * Defines an iterator seek time method attribute attached to a filter
992 * component class descriptor which is attached to the automatic plugin
995 * _name: Component class name (C identifier).
996 * _x: Iterator seek time method
997 * (bt_component_class_notification_iterator_seek_time_method).
999 #define BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_SEEK_TIME_METHOD(_name, _x) \
1000 BT_PLUGIN_FILTER_COMPONENT_CLASS_NOTIFICATION_ITERATOR_SEEK_TIME_METHOD_WITH_ID(auto, _name, _x)
1006 #endif /* BABELTRACE_PLUGIN_PLUGIN_DEV_H */