-#ifndef CLI_BABELTRACE_CFG_CLI_ARGS_H
-#define CLI_BABELTRACE_CFG_CLI_ARGS_H
-
/*
- * Copyright 2016-2017 Philippe Proulx <pproulx@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
+ * SPDX-License-Identifier: MIT
*
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2016-2017 Philippe Proulx <pproulx@efficios.com>
*/
+#ifndef BABELTRACE_CLI_BABELTRACE2_CFG_CLI_ARGS_H
+#define BABELTRACE_CLI_BABELTRACE2_CFG_CLI_ARGS_H
+
+#include <stdbool.h>
#include <stdlib.h>
#include <stdint.h>
-#include <babeltrace2/value.h>
#include "lib/object.h"
#include "compat/compiler.h"
-#include <babeltrace2/graph/component-class.h>
#include <glib.h>
#include "babeltrace2-cfg.h"
-struct bt_config *bt_config_cli_args_create(int argc, const char *argv[],
- int *retcode, bool force_omit_system_plugin_path,
+/*
+ * Return value of functions that create a bt_config from CLI args and return
+ * it through an out parameter.
+ */
+enum bt_config_cli_args_status
+{
+ /*
+ * Config was successfully created and returned through the out
+ * parameter.
+ */
+ BT_CONFIG_CLI_ARGS_STATUS_OK = 0,
+
+ /*
+ * Config could not be created due to an error. The out parameter is
+ * left unchanged.
+ */
+ BT_CONFIG_CLI_ARGS_STATUS_ERROR = -1,
+
+ /*
+ * The arguments caused the function to print some information (help,
+ * version, etc), not config was created. The out parameter is left
+ * unchanged.
+ */
+ BT_CONFIG_CLI_ARGS_STATUS_INFO_ONLY = 1,
+};
+
+enum bt_config_cli_args_status bt_config_cli_args_create(int argc,
+ const char *argv[],
+ struct bt_config **cfg, bool force_omit_system_plugin_path,
bool force_omit_home_plugin_path,
- const bt_value *initial_plugin_paths);
+ const bt_value *initial_plugin_paths,
+ const bt_interrupter *interrupter);
-#endif /* CLI_BABELTRACE_CFG_CLI_ARGS_H */
+#endif /* BABELTRACE_CLI_BABELTRACE2_CFG_CLI_ARGS_H */