#include <babeltrace/ref.h>
#include <babeltrace/object-internal.h>
#include <babeltrace/compiler.h>
+#include <babeltrace/component/component-class.h>
#include <glib.h>
struct bt_config_component {
struct bt_object base;
+ enum bt_component_class_type type;
GString *plugin_name;
GString *component_name;
struct bt_value *params;
- struct {
- bool set;
- int64_t value_ns;
- } begin;
- struct {
- bool set;
- int64_t value_ns;
- } end;
+ GString *instance_name;
+};
+
+enum bt_config_command {
+ BT_CONFIG_COMMAND_CONVERT,
+ BT_CONFIG_COMMAND_LIST_PLUGINS,
+ BT_CONFIG_COMMAND_HELP,
+ BT_CONFIG_COMMAND_QUERY,
};
struct bt_config {
struct bt_object base;
- struct bt_value *plugin_paths;
+ bool debug;
+ bool verbose;
+ const char *command_name;
+ enum bt_config_command command;
+ union {
+ /* BT_CONFIG_COMMAND_CONVERT */
+ struct {
+ struct bt_value *plugin_paths;
- /* Array of pointers to struct bt_config_component */
- GPtrArray *sources;
+ /* Array of pointers to struct bt_config_component */
+ GPtrArray *sources;
- /* Array of pointers to struct bt_config_component */
- GPtrArray *sinks;
+ /* Array of pointers to struct bt_config_component */
+ GPtrArray *filters;
- bool debug;
- bool verbose;
- bool do_list;
- bool force_correlate;
+ /* Array of pointers to struct bt_config_component */
+ GPtrArray *sinks;
+
+ /* Array of pointers to struct bt_config_connection */
+ GPtrArray *connections;
+
+ bool force_correlate;
+ bool omit_system_plugin_path;
+ bool omit_home_plugin_path;
+ bool print_ctf_metadata;
+ } convert;
+
+ /* BT_CONFIG_COMMAND_LIST_PLUGINS */
+ struct {
+ struct bt_value *plugin_paths;
+ bool omit_system_plugin_path;
+ bool omit_home_plugin_path;
+ } list_plugins;
+
+ /* BT_CONFIG_COMMAND_HELP */
+ struct {
+ struct bt_value *plugin_paths;
+ bool omit_system_plugin_path;
+ bool omit_home_plugin_path;
+ struct bt_config_component *cfg_component;
+ } help;
+
+ /* BT_CONFIG_COMMAND_QUERY */
+ struct {
+ struct bt_value *plugin_paths;
+ bool omit_system_plugin_path;
+ bool omit_home_plugin_path;
+ GString *object;
+ struct bt_config_component *cfg_component;
+ } query;
+ } cmd_data;
};
static inline
return bt_get(g_ptr_array_index(array, index));
}
-struct bt_config *bt_config_from_args(int argc, char *argv[], int *exit_code);
+struct bt_config *bt_config_from_args(int argc, const char *argv[],
+ int *retcode, bool omit_system_plugin_path,
+ bool omit_home_plugin_path,
+ struct bt_value *initial_plugin_paths);
+
+struct bt_config_component *bt_config_component_from_arg(
+ enum bt_component_class_type type, const char *arg);
+
+enum bt_value_status bt_config_append_plugin_paths(
+ struct bt_value *plugin_paths, const char *arg);
#endif /* BABELTRACE_CONVERTER_CFG_H */