cpp-common/bt2c/fmt.hpp: use `wise_enum::string_type` in `EnableIfIsWiseEnum` definition
[babeltrace.git] / src / cli / babeltrace2-cfg.h
CommitLineData
c42c79ea 1/*
0235b0db 2 * SPDX-License-Identifier: MIT
c42c79ea 3 *
9009cc24 4 * Copyright 2016-2017 Philippe Proulx <pproulx@efficios.com>
c42c79ea 5 *
0235b0db 6 * Babeltrace trace converter - CLI tool's configuration
c42c79ea
PP
7 */
8
0235b0db
MJ
9#ifndef CLI_BABELTRACE_CFG_H
10#define CLI_BABELTRACE_CFG_H
11
c42c79ea 12#include <stdlib.h>
015cee23 13#include <stdint.h>
c55a9f58 14#include <stdbool.h>
578e048b
MJ
15#include "lib/object.h"
16#include "compat/compiler.h"
c42c79ea
PP
17#include <glib.h>
18
9009cc24
PP
19enum bt_config_command {
20 BT_CONFIG_COMMAND_RUN,
21 BT_CONFIG_COMMAND_PRINT_CTF_METADATA,
22 BT_CONFIG_COMMAND_PRINT_LTTNG_LIVE_SESSIONS,
23 BT_CONFIG_COMMAND_LIST_PLUGINS,
24 BT_CONFIG_COMMAND_HELP,
25 BT_CONFIG_COMMAND_QUERY,
26};
27
c42c79ea 28struct bt_config_component {
b19ff26f 29 bt_object base;
4cdfc5e8 30 bt_component_class_type type;
c42c79ea 31 GString *plugin_name;
db0f160a 32 GString *comp_cls_name;
b19ff26f 33 bt_value *params;
3b6cfcc5 34 GString *instance_name;
29da2ffc 35 int log_level;
c42c79ea
PP
36};
37
9009cc24
PP
38struct bt_config_connection {
39 GString *upstream_comp_name;
40 GString *downstream_comp_name;
41 GString *upstream_port_glob;
42 GString *downstream_port_glob;
43 GString *arg;
290725f7
PP
44};
45
c42c79ea 46struct bt_config {
b19ff26f 47 bt_object base;
b19ff26f 48 bt_value *plugin_paths;
db0f160a
PP
49 bool omit_system_plugin_path;
50 bool omit_home_plugin_path;
51 bool command_needs_plugins;
290725f7 52 const char *command_name;
83094759 53 int log_level;
290725f7
PP
54 enum bt_config_command command;
55 union {
db0f160a 56 /* BT_CONFIG_COMMAND_RUN */
290725f7 57 struct {
290725f7
PP
58 /* Array of pointers to struct bt_config_component */
59 GPtrArray *sources;
c42c79ea 60
ebba3338
PP
61 /* Array of pointers to struct bt_config_component */
62 GPtrArray *filters;
63
290725f7
PP
64 /* Array of pointers to struct bt_config_component */
65 GPtrArray *sinks;
c42c79ea 66
ebba3338
PP
67 /* Array of pointers to struct bt_config_connection */
68 GPtrArray *connections;
9009cc24
PP
69
70 /*
71 * Number of microseconds to sleep when we need
72 * to retry to run the graph.
73 */
74 uint64_t retry_duration_us;
75a2cb9b
JG
75
76 /*
77 * Whether or not to trim the source trace to the
78 * intersection of its streams.
79 */
80 bool stream_intersection_mode;
db0f160a 81 } run;
22e22462
PP
82
83 /* BT_CONFIG_COMMAND_HELP */
84 struct {
90de159b 85 struct bt_config_component *cfg_component;
22e22462 86 } help;
63ce0e1d 87
a67681c1 88 /* BT_CONFIG_COMMAND_QUERY */
63ce0e1d 89 struct {
a67681c1 90 GString *object;
63ce0e1d 91 struct bt_config_component *cfg_component;
a67681c1 92 } query;
db0f160a
PP
93
94 /* BT_CONFIG_COMMAND_PRINT_CTF_METADATA */
95 struct {
96 GString *path;
c327e427 97 GString *output_path;
db0f160a
PP
98 } print_ctf_metadata;
99
100 /* BT_CONFIG_COMMAND_PRINT_LTTNG_LIVE_SESSIONS */
101 struct {
102 GString *url;
c327e427 103 GString *output_path;
db0f160a 104 } print_lttng_live_sessions;
290725f7 105 } cmd_data;
c42c79ea
PP
106};
107
108static inline
109struct bt_config_component *bt_config_get_component(GPtrArray *array,
110 size_t index)
111{
398454ed
PP
112 struct bt_config_component *comp = g_ptr_array_index(array, index);
113
114 bt_object_get_ref(comp);
115 return comp;
c42c79ea
PP
116}
117
b19ff26f 118int bt_config_append_plugin_paths(bt_value *plugin_paths,
601b0d3c 119 const char *arg);
5a3ee633 120
9009cc24
PP
121void bt_config_connection_destroy(struct bt_config_connection *connection);
122
123#endif /* CLI_BABELTRACE_CFG_H */
This page took 0.092626 seconds and 4 git commands to generate.