lib: add "get supported MIP versions" method support
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Sat, 10 Aug 2019 19:18:17 +0000 (15:18 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 4 Sep 2019 15:58:21 +0000 (11:58 -0400)
commitbe788861f38a61dbc858c1d9717eb313114181f5
tree0255bdb09f661eaef2157a9d95d0727018714f85
parent8345fc26409b9b1e62aaf7487912514d1d2eee08
lib: add "get supported MIP versions" method support

This patch adds a new optional method to component classes: get
supported message interchange protocol (MIP) versions.

As of this patch, you can set the "get supported MIP versions" method of
a component class, but it's not used.

The "message interchange protocol" term is very long so I chose to use
the acronym "mip" in the API. The API documentation will make this more
clear.

The method is considered a "class method"; no component exists yet when
calling it (like the query method). The method receives the component
class, the initialization parameters, the initalization method custom
data, and an existing, empty unsigned integer range set. The method's
purpose is to fill this integer range set with all the MIP versions it
supports depending on the initialization configuration. This makes it
possible to support specific MIP versions based on an input path or URI,
for example.

It is a postcondition that the method adds at least one MIP version to
the unsigned integer range set.

The "get supported MIP versions" method is optional: not implementing it
corresponds to adding [0, 0] to the unsigned integer range set. This
makes it possible to implement a component class of which the instance
operates according to the MIP protocol of Babeltrace 2.0.

The "get supported MIP versions" method can fail, but it cannot return
a "try again" status.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: Ib26ec9e90b47a3d3e51cc56465a264de9d02b97c
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1870
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Simon Marchi <simon.marchi@efficios.com>
include/babeltrace2/graph/component-class-filter.h
include/babeltrace2/graph/component-class-sink.h
include/babeltrace2/graph/component-class-source.h
include/babeltrace2/graph/component-class.h
include/babeltrace2/plugin/plugin-dev.h
src/lib/graph/component-class.c
src/lib/graph/component-class.h
src/lib/plugin/plugin-so.c
This page took 0.027442 seconds and 4 git commands to generate.