X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=converter%2Fbabeltrace-cfg.h;h=ca2f9950ebbdb6d592173aa0bab49408657d2ce2;hb=599faa1c75b3c429745e0d4a983670c3dd205092;hp=fea844c52865c982eb9bf752538c576d56e7a22c;hpb=528debdf7f5593bfb1abddac48554fc635d26a6d;p=babeltrace.git diff --git a/converter/babeltrace-cfg.h b/converter/babeltrace-cfg.h index fea844c5..ca2f9950 100644 --- a/converter/babeltrace-cfg.h +++ b/converter/babeltrace-cfg.h @@ -31,29 +31,74 @@ #include #include #include +#include #include struct bt_config_component { struct bt_object base; + enum bt_component_class_type type; GString *plugin_name; - GString *component_name; + GString *comp_cls_name; struct bt_value *params; + GString *instance_name; +}; + +enum bt_config_command { + BT_CONFIG_COMMAND_RUN, + BT_CONFIG_COMMAND_PRINT_CTF_METADATA, + BT_CONFIG_COMMAND_PRINT_LTTNG_LIVE_SESSIONS, + BT_CONFIG_COMMAND_LIST_PLUGINS, + BT_CONFIG_COMMAND_HELP, + BT_CONFIG_COMMAND_QUERY, }; struct bt_config { struct bt_object base; + bool debug; + bool verbose; struct bt_value *plugin_paths; + bool omit_system_plugin_path; + bool omit_home_plugin_path; + bool command_needs_plugins; + const char *command_name; + enum bt_config_command command; + union { + /* BT_CONFIG_COMMAND_RUN */ + struct { + /* 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 *filters; - /* Array of pointers to struct bt_config_component */ - GPtrArray *sinks; + /* Array of pointers to struct bt_config_component */ + GPtrArray *sinks; - bool debug; - bool verbose; - bool do_list; - bool force_correlate; + /* Array of pointers to struct bt_config_connection */ + GPtrArray *connections; + } run; + + /* BT_CONFIG_COMMAND_HELP */ + struct { + struct bt_config_component *cfg_component; + } help; + + /* BT_CONFIG_COMMAND_QUERY */ + struct { + GString *object; + struct bt_config_component *cfg_component; + } query; + + /* BT_CONFIG_COMMAND_PRINT_CTF_METADATA */ + struct { + GString *path; + } print_ctf_metadata; + + /* BT_CONFIG_COMMAND_PRINT_LTTNG_LIVE_SESSIONS */ + struct { + GString *url; + } print_lttng_live_sessions; + } cmd_data; }; static inline @@ -63,6 +108,15 @@ struct bt_config_component *bt_config_get_component(GPtrArray *array, return bt_get(g_ptr_array_index(array, index)); } -struct bt_config *bt_config_from_args(int argc, const 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 */