X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=cli%2Fbabeltrace-cfg-cli-args.c;h=927a85d931482e8d285ac692f45d004ce97a7339;hb=7b6a21439c0ec822f2fce4fe61b7f1d1f2059273;hp=784cd5fde70be99d171c590cc76d1e9f42f488ab;hpb=4b70020dc7da3a97f87be1f6a0055ae2d139542f;p=babeltrace.git diff --git a/cli/babeltrace-cfg-cli-args.c b/cli/babeltrace-cfg-cli-args.c index 784cd5fd..927a85d9 100644 --- a/cli/babeltrace-cfg-cli-args.c +++ b/cli/babeltrace-cfg-cli-args.c @@ -34,8 +34,6 @@ #include #include #include -#include -#include #include #include #include @@ -72,9 +70,6 @@ enum ini_parsing_fsm_state { /* Expect a value */ INI_EXPECT_VALUE, - /* Expect a negative number value */ - INI_EXPECT_VALUE_NUMBER_NEG, - /* Expect a comma character (',') */ INI_EXPECT_COMMA, }; @@ -85,7 +80,7 @@ struct ini_parsing_state { GScanner *scanner; /* Output map value object being filled (owned by this) */ - struct bt_private_value *params; + bt_value *params; /* Next expected FSM state */ enum ini_parsing_fsm_state expecting; @@ -122,8 +117,8 @@ struct text_legacy_opts { GString *output; GString *dbg_info_dir; GString *dbg_info_target_prefix; - struct bt_value *names; - struct bt_value *fields; + const bt_value *names; + const bt_value *fields; /* Flags */ bool no_delta; @@ -190,12 +185,202 @@ void ini_append_error_expecting(struct ini_parsing_state *state, g_string_append_printf(state->ini_error, "^\n\n"); } +/* Parse the next token as a number and return its negation. */ +static +bt_value *ini_parse_neg_number(struct ini_parsing_state *state) +{ + bt_value *value = NULL; + GTokenType token_type = g_scanner_get_next_token(state->scanner); + + switch (token_type) { + case G_TOKEN_INT: + { + /* Negative integer */ + uint64_t int_val = state->scanner->value.v_int64; + + if (int_val > (((uint64_t) INT64_MAX) + 1)) { + g_string_append_printf(state->ini_error, + "Integer value -%" PRIu64 " is outside the range of a 64-bit signed integer\n", + int_val); + } else { + value = bt_value_integer_create_init(-((int64_t) int_val)); + } + + break; + } + case G_TOKEN_FLOAT: + /* Negative floating point number */ + value = bt_value_real_create_init(-state->scanner->value.v_float); + break; + default: + ini_append_error_expecting(state, state->scanner, "value"); + break; + } + + return value; +} + +static bt_value *ini_parse_value(struct ini_parsing_state *state); + +/* + * Parse the current and following tokens as an array. Arrays are formatted as + * an opening `[`, a list of comma-separated values and a closing `]`. For + * convenience we support an optional trailing comma, after the last value. + * + * The current token of the parser must be the opening square bracket of the + * array. + */ +static +bt_value *ini_parse_array(struct ini_parsing_state *state) +{ + /* The [ character must have already been ingested. */ + BT_ASSERT(g_scanner_cur_token(state->scanner) == G_TOKEN_CHAR); + BT_ASSERT(g_scanner_cur_value(state->scanner).v_char == '['); + + bt_value *array_value; + GTokenType token_type; + + array_value = bt_value_array_create (); + token_type = g_scanner_get_next_token(state->scanner); + + /* While the current token is not a ]... */ + while (!(token_type == G_TOKEN_CHAR && g_scanner_cur_value(state->scanner).v_char == ']')) { + /* Parse the item... */ + bt_value *item_value; + bt_value_status status; + + item_value = ini_parse_value(state); + if (!item_value) { + goto error; + } + + /* ... and add it to the result array. */ + status = bt_value_array_append_element(array_value, item_value); + BT_VALUE_PUT_REF_AND_RESET(item_value); + + if (status != BT_VALUE_STATUS_OK) { + goto error; + } + + /* + * Ingest the token following the value, it should be either a + * comma or closing square brace. + */ + token_type = g_scanner_get_next_token(state->scanner); + + if (token_type == G_TOKEN_CHAR && g_scanner_cur_value(state->scanner).v_char == ',') { + /* + * Ingest the token following the comma. If it happens + * to be a closing square bracket, we'll exit the loop + * and we are done (we allow trailing commas). + * Otherwise, we are ready for the next ini_parse_value call. + */ + token_type = g_scanner_get_next_token(state->scanner); + } else if (token_type != G_TOKEN_CHAR || g_scanner_cur_value(state->scanner).v_char != ']') { + ini_append_error_expecting(state, state->scanner, ", or ]"); + goto error; + } + } + + goto end; + +error: + BT_VALUE_PUT_REF_AND_RESET(array_value); + +end: + return array_value; +} + +/* + * Parse the current token (and the following ones if needed) as a value, return + * it as a bt_value. + */ +static +bt_value *ini_parse_value(struct ini_parsing_state *state) +{ + bt_value *value = NULL; + GTokenType token_type = state->scanner->token; + + switch (token_type) { + case G_TOKEN_CHAR: + if (state->scanner->value.v_char == '-') { + /* Negative number */ + value = ini_parse_neg_number(state); + } else if (state->scanner->value.v_char == '[') { + /* Array */ + value = ini_parse_array(state); + } else { + ini_append_error_expecting(state, state->scanner, "value"); + } + break; + case G_TOKEN_INT: + { + /* Positive integer */ + uint64_t int_val = state->scanner->value.v_int64; + + if (int_val > INT64_MAX) { + g_string_append_printf(state->ini_error, + "Integer value %" PRIu64 " is outside the range of a 64-bit signed integer\n", + int_val); + } else { + value = bt_value_integer_create_init((int64_t)int_val); + } + break; + } + case G_TOKEN_FLOAT: + /* Positive floating point number */ + value = bt_value_real_create_init(state->scanner->value.v_float); + break; + case G_TOKEN_STRING: + /* Quoted string */ + value = bt_value_string_create_init(state->scanner->value.v_string); + break; + case G_TOKEN_IDENTIFIER: + { + /* + * Using symbols would be appropriate here, + * but said symbols are allowed as map key, + * so it's easier to consider everything an + * identifier. + * + * If one of the known symbols is not + * recognized here, then fall back to creating + * a string value. + */ + const char *id = state->scanner->value.v_identifier; + + if (!strcmp(id, "null") || !strcmp(id, "NULL") || + !strcmp(id, "nul")) { + value = bt_value_null; + } else if (!strcmp(id, "true") || !strcmp(id, "TRUE") || + !strcmp(id, "yes") || + !strcmp(id, "YES")) { + value = bt_value_bool_create_init(true); + } else if (!strcmp(id, "false") || + !strcmp(id, "FALSE") || + !strcmp(id, "no") || + !strcmp(id, "NO")) { + value = bt_value_bool_create_init(false); + } else { + value = bt_value_string_create_init(id); + } + break; + } + default: + /* Unset value variable will trigger the error */ + ini_append_error_expecting(state, state->scanner, "value"); + break; + } + + return value; +} + static int ini_handle_state(struct ini_parsing_state *state) { int ret = 0; GTokenType token_type; - struct bt_value *value = NULL; + bt_value *value = NULL; token_type = g_scanner_get_next_token(state->scanner); if (token_type == G_TOKEN_EOF) { @@ -206,7 +391,6 @@ int ini_handle_state(struct ini_parsing_state *state) state->scanner, "'='"); break; case INI_EXPECT_VALUE: - case INI_EXPECT_VALUE_NUMBER_NEG: ini_append_error_expecting(state, state->scanner, "value"); break; @@ -242,9 +426,8 @@ int ini_handle_state(struct ini_parsing_state *state) goto error; } - if (bt_value_map_has_entry( - bt_private_value_as_value(state->params), - state->last_map_key)) { + if (bt_value_map_has_entry(state->params, + state->last_map_key)) { g_string_append_printf(state->ini_error, "Duplicate parameter key: `%s`\n", state->last_map_key); @@ -270,130 +453,8 @@ int ini_handle_state(struct ini_parsing_state *state) goto success; case INI_EXPECT_VALUE: { - switch (token_type) { - case G_TOKEN_CHAR: - if (state->scanner->value.v_char == '-') { - /* Negative number */ - state->expecting = - INI_EXPECT_VALUE_NUMBER_NEG; - goto success; - } else { - ini_append_error_expecting(state, - state->scanner, "value"); - goto error; - } - break; - case G_TOKEN_INT: - { - /* Positive integer */ - uint64_t int_val = state->scanner->value.v_int64; - - if (int_val > (1ULL << 63) - 1) { - g_string_append_printf(state->ini_error, - "Integer value %" PRIu64 " is outside the range of a 64-bit signed integer\n", - int_val); - goto error; - } - - value = bt_private_value_as_value( - bt_private_value_integer_create_init( - (int64_t) int_val)); - break; - } - case G_TOKEN_FLOAT: - /* Positive floating point number */ - value = bt_private_value_as_value( - bt_private_value_real_create_init( - state->scanner->value.v_float)); - break; - case G_TOKEN_STRING: - /* Quoted string */ - value = bt_private_value_as_value( - bt_private_value_string_create_init( - state->scanner->value.v_string)); - break; - case G_TOKEN_IDENTIFIER: - { - /* - * Using symbols would be appropriate here, - * but said symbols are allowed as map key, - * so it's easier to consider everything an - * identifier. - * - * If one of the known symbols is not - * recognized here, then fall back to creating - * a string value. - */ - const char *id = state->scanner->value.v_identifier; - - if (!strcmp(id, "null") || !strcmp(id, "NULL") || - !strcmp(id, "nul")) { - value = bt_value_null; - } else if (!strcmp(id, "true") || !strcmp(id, "TRUE") || - !strcmp(id, "yes") || - !strcmp(id, "YES")) { - value = bt_private_value_as_value( - bt_private_value_bool_create_init(true)); - } else if (!strcmp(id, "false") || - !strcmp(id, "FALSE") || - !strcmp(id, "no") || - !strcmp(id, "NO")) { - value = bt_private_value_as_value( - bt_private_value_bool_create_init(false)); - } else { - value = bt_private_value_as_value( - bt_private_value_string_create_init(id)); - } - break; - } - default: - /* Unset value variable will trigger the error */ - break; - } - - if (!value) { - ini_append_error_expecting(state, - state->scanner, "value"); - goto error; - } - - state->expecting = INI_EXPECT_COMMA; - goto success; - } - case INI_EXPECT_VALUE_NUMBER_NEG: - { - switch (token_type) { - case G_TOKEN_INT: - { - /* Negative integer */ - uint64_t int_val = state->scanner->value.v_int64; - - if (int_val > (1ULL << 63) - 1) { - g_string_append_printf(state->ini_error, - "Integer value -%" PRIu64 " is outside the range of a 64-bit signed integer\n", - int_val); - goto error; - } - - value = bt_private_value_as_value( - bt_private_value_integer_create_init( - -((int64_t) int_val))); - break; - } - case G_TOKEN_FLOAT: - /* Negative floating point number */ - value = bt_private_value_as_value( - bt_private_value_real_create_init( - -state->scanner->value.v_float)); - break; - default: - /* Unset value variable will trigger the error */ - break; - } - + value = ini_parse_value(state); if (!value) { - ini_append_error_expecting(state, - state->scanner, "value"); goto error; } @@ -425,7 +486,7 @@ error: success: if (value) { - if (bt_private_value_map_insert_entry(state->params, + if (bt_value_map_insert_entry(state->params, state->last_map_key, value)) { /* Only override return value on error */ ret = -1; @@ -433,7 +494,7 @@ success: } end: - BT_OBJECT_PUT_REF_AND_RESET(value); + BT_VALUE_PUT_REF_AND_RESET(value); return ret; } @@ -443,7 +504,7 @@ end: * Return value is owned by the caller. */ static -struct bt_private_value *bt_private_value_from_ini(const char *arg, +bt_value *bt_value_from_ini(const char *arg, GString *ini_error) { /* Lexical scanner configuration */ @@ -523,7 +584,7 @@ struct bt_private_value *bt_private_value_from_ini(const char *arg, .ini_error = ini_error, }; - state.params = bt_private_value_map_create(); + state.params = bt_value_map_create(); if (!state.params) { goto error; } @@ -551,7 +612,7 @@ struct bt_private_value *bt_private_value_from_ini(const char *arg, goto end; error: - BT_OBJECT_PUT_REF_AND_RESET(state.params); + BT_VALUE_PUT_REF_AND_RESET(state.params); end: if (state.scanner) { @@ -569,9 +630,9 @@ end: * Return value is owned by the caller. */ static -struct bt_private_value *bt_private_value_from_arg(const char *arg) +bt_value *bt_value_from_arg(const char *arg) { - struct bt_private_value *params = NULL; + bt_value *params = NULL; GString *ini_error = NULL; ini_error = g_string_new(NULL); @@ -581,7 +642,7 @@ struct bt_private_value *bt_private_value_from_arg(const char *arg) } /* Try INI-style parsing */ - params = bt_private_value_from_ini(arg, ini_error); + params = bt_value_from_ini(arg, ini_error); if (!params) { printf_err("%s", ini_error->str); goto end; @@ -612,7 +673,7 @@ end: */ static void plugin_comp_cls_names(const char *arg, char **name, char **plugin, - char **comp_cls, enum bt_component_class_type *comp_cls_type) + char **comp_cls, bt_component_class_type *comp_cls_type) { const char *at = arg; GString *gs_name = NULL; @@ -754,7 +815,7 @@ void print_version(void) * Destroys a component configuration. */ static -void bt_config_component_destroy(struct bt_object *obj) +void bt_config_component_destroy(bt_object *obj) { struct bt_config_component *bt_config_component = container_of(obj, struct bt_config_component, base); @@ -775,7 +836,7 @@ void bt_config_component_destroy(struct bt_object *obj) g_string_free(bt_config_component->instance_name, TRUE); } - BT_OBJECT_PUT_REF_AND_RESET(bt_config_component->params); + BT_VALUE_PUT_REF_AND_RESET(bt_config_component->params); g_free(bt_config_component); end: @@ -791,7 +852,7 @@ end: */ static struct bt_config_component *bt_config_component_create( - enum bt_component_class_type type, + bt_component_class_type type, const char *plugin_name, const char *comp_cls_name) { struct bt_config_component *cfg_component = NULL; @@ -824,7 +885,7 @@ struct bt_config_component *bt_config_component_create( } /* Start with empty parameters */ - cfg_component->params = bt_private_value_map_create(); + cfg_component->params = bt_value_map_create(); if (!cfg_component->params) { print_err_oom(); goto error; @@ -850,7 +911,7 @@ struct bt_config_component *bt_config_component_from_arg(const char *arg) char *name = NULL; char *plugin_name = NULL; char *comp_cls_name = NULL; - enum bt_component_class_type type; + bt_component_class_type type; plugin_comp_cls_names(arg, &name, &plugin_name, &comp_cls_name, &type); if (!plugin_name || !comp_cls_name) { @@ -882,7 +943,7 @@ end: * Destroys a configuration. */ static -void bt_config_destroy(struct bt_object *obj) +void bt_config_destroy(bt_object *obj) { struct bt_config *cfg = container_of(obj, struct bt_config, base); @@ -891,7 +952,7 @@ void bt_config_destroy(struct bt_object *obj) goto end; } - BT_OBJECT_PUT_REF_AND_RESET(cfg->plugin_paths); + BT_VALUE_PUT_REF_AND_RESET(cfg->plugin_paths); switch (cfg->command) { case BT_CONFIG_COMMAND_RUN: @@ -1023,13 +1084,13 @@ GScanner *create_csv_identifiers_scanner(void) * Return value is owned by the caller. */ static -struct bt_private_value *names_from_arg(const char *arg) +bt_value *names_from_arg(const char *arg) { GScanner *scanner = NULL; - struct bt_private_value *names = NULL; + bt_value *names = NULL; bool found_all = false, found_none = false, found_item = false; - names = bt_private_value_array_create(); + names = bt_value_array_create(); if (!names) { print_err_oom(); goto error; @@ -1054,33 +1115,33 @@ struct bt_private_value *names_from_arg(const char *arg) !strcmp(identifier, "args") || !strcmp(identifier, "arg")) { found_item = true; - if (bt_private_value_array_append_string_element(names, + if (bt_value_array_append_string_element(names, "payload")) { goto error; } } else if (!strcmp(identifier, "context") || !strcmp(identifier, "ctx")) { found_item = true; - if (bt_private_value_array_append_string_element(names, + if (bt_value_array_append_string_element(names, "context")) { goto error; } } else if (!strcmp(identifier, "scope") || !strcmp(identifier, "header")) { found_item = true; - if (bt_private_value_array_append_string_element(names, + if (bt_value_array_append_string_element(names, identifier)) { goto error; } } else if (!strcmp(identifier, "all")) { found_all = true; - if (bt_private_value_array_append_string_element(names, + if (bt_value_array_append_string_element(names, identifier)) { goto error; } } else if (!strcmp(identifier, "none")) { found_none = true; - if (bt_private_value_array_append_string_element(names, + if (bt_value_array_append_string_element(names, identifier)) { goto error; } @@ -1110,7 +1171,7 @@ end: * least one item is specified. */ if (found_item && !found_none && !found_all) { - if (bt_private_value_array_append_string_element(names, "none")) { + if (bt_value_array_append_string_element(names, "none")) { goto error; } } @@ -1120,7 +1181,7 @@ end: return names; error: - BT_OBJECT_PUT_REF_AND_RESET(names); + BT_VALUE_PUT_REF_AND_RESET(names); if (scanner) { g_scanner_destroy(scanner); } @@ -1135,12 +1196,12 @@ error: * Return value is owned by the caller. */ static -struct bt_private_value *fields_from_arg(const char *arg) +bt_value *fields_from_arg(const char *arg) { GScanner *scanner = NULL; - struct bt_private_value *fields; + bt_value *fields; - fields = bt_private_value_array_create(); + fields = bt_value_array_create(); if (!fields) { print_err_oom(); goto error; @@ -1170,7 +1231,7 @@ struct bt_private_value *fields_from_arg(const char *arg) !strcmp(identifier, "emf") || !strcmp(identifier, "callsite") || !strcmp(identifier, "all")) { - if (bt_private_value_array_append_string_element(fields, + if (bt_value_array_append_string_element(fields, identifier)) { goto error; } @@ -1193,7 +1254,7 @@ struct bt_private_value *fields_from_arg(const char *arg) goto end; error: - BT_OBJECT_PUT_REF_AND_RESET(fields); + BT_VALUE_PUT_REF_AND_RESET(fields); end: if (scanner) { @@ -1224,7 +1285,7 @@ void append_param_arg(GString *params_arg, const char *key, const char *value) */ static int insert_flat_params_from_array(GString *params_arg, - struct bt_value *names_array, const char *prefix) + const bt_value *names_array, const char *prefix) { int ret = 0; int i; @@ -1254,8 +1315,9 @@ int insert_flat_params_from_array(GString *params_arg, } for (i = 0; i < bt_value_array_get_size(names_array); i++) { - struct bt_value *str_obj = - bt_value_array_borrow_element_by_index(names_array, i); + const bt_value *str_obj = + bt_value_array_borrow_element_by_index_const(names_array, + i); const char *suffix; bool is_default = false; @@ -1394,7 +1456,7 @@ static int add_run_cfg_comp_check_name(struct bt_config *cfg, struct bt_config_component *cfg_comp, enum bt_config_component_dest dest, - struct bt_private_value *instance_names) + bt_value *instance_names) { int ret = 0; @@ -1404,15 +1466,15 @@ int add_run_cfg_comp_check_name(struct bt_config *cfg, goto end; } - if (bt_value_map_has_entry(bt_private_value_as_value(instance_names), - cfg_comp->instance_name->str)) { + if (bt_value_map_has_entry(instance_names, + cfg_comp->instance_name->str)) { printf_err("Duplicate component instance name:\n %s\n", cfg_comp->instance_name->str); ret = -1; goto end; } - if (bt_private_value_map_insert_entry(instance_names, + if (bt_value_map_insert_entry(instance_names, cfg_comp->instance_name->str, bt_value_null)) { print_err_oom(); ret = -1; @@ -1426,7 +1488,7 @@ end: } static -int append_env_var_plugin_paths(struct bt_private_value *plugin_paths) +int append_env_var_plugin_paths(bt_value *plugin_paths) { int ret = 0; const char *envvar; @@ -1452,7 +1514,7 @@ end: } static -int append_home_and_system_plugin_paths(struct bt_private_value *plugin_paths, +int append_home_and_system_plugin_paths(bt_value *plugin_paths, bool omit_system_plugin_path, bool omit_home_plugin_path) { int ret; @@ -1499,7 +1561,7 @@ int append_home_and_system_plugin_paths_cfg(struct bt_config *cfg) static struct bt_config *bt_config_base_create(enum bt_config_command command, - struct bt_private_value *initial_plugin_paths, + const bt_value *initial_plugin_paths, bool needs_plugins) { struct bt_config *cfg; @@ -1516,10 +1578,13 @@ struct bt_config *bt_config_base_create(enum bt_config_command command, cfg->command_needs_plugins = needs_plugins; if (initial_plugin_paths) { - cfg->plugin_paths = initial_plugin_paths; - bt_object_get_ref(cfg->plugin_paths); + bt_value *initial_plugin_paths_copy; + + (void) bt_value_copy(initial_plugin_paths, + &initial_plugin_paths_copy); + cfg->plugin_paths = initial_plugin_paths_copy; } else { - cfg->plugin_paths = bt_private_value_array_create(); + cfg->plugin_paths = bt_value_array_create(); if (!cfg->plugin_paths) { print_err_oom(); goto error; @@ -1537,7 +1602,7 @@ end: static struct bt_config *bt_config_run_create( - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1587,7 +1652,7 @@ end: static struct bt_config *bt_config_list_plugins_create( - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1609,7 +1674,7 @@ end: static struct bt_config *bt_config_help_create( - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1637,7 +1702,7 @@ end: static struct bt_config *bt_config_query_create( - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1665,7 +1730,7 @@ end: static struct bt_config *bt_config_print_ctf_metadata_create( - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1699,7 +1764,7 @@ end: static struct bt_config *bt_config_print_lttng_live_sessions_create( - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg; @@ -1734,7 +1799,7 @@ end: static int bt_config_append_plugin_paths_check_setuid_setgid( - struct bt_private_value *plugin_paths, const char *arg) + bt_value *plugin_paths, const char *arg) { int ret = 0; @@ -1778,6 +1843,8 @@ void print_expected_params_format(FILE *fp) fprintf(fp, "* Unquoted string with no special characters, and not matching any of\n"); fprintf(fp, " the null and boolean value symbols above.\n"); fprintf(fp, "* Double-quoted string (accepts escape characters).\n"); + fprintf(fp, "* Array, formatted as an opening `[`, a list of comma-separated values\n"); + fprintf(fp, " (as described by the current list) and a closing `]`.\n"); fprintf(fp, "\n"); fprintf(fp, "You can put whitespaces allowed around individual `=` and `,` symbols.\n"); fprintf(fp, "\n"); @@ -1785,7 +1852,8 @@ void print_expected_params_format(FILE *fp) fprintf(fp, "\n"); fprintf(fp, " many=null, fresh=yes, condition=false, squirrel=-782329,\n"); fprintf(fp, " observe=3.14, simple=beef, needs-quotes=\"some string\",\n"); - fprintf(fp, " escape.chars-are:allowed=\"this is a \\\" double quote\"\n"); + fprintf(fp, " escape.chars-are:allowed=\"this is a \\\" double quote\",\n"); + fprintf(fp, " things=[1, \"2\", 3]\n"); fprintf(fp, "\n"); fprintf(fp, "IMPORTANT: Make sure to single-quote the whole argument when you run\n"); fprintf(fp, "babeltrace from a shell.\n"); @@ -1835,7 +1903,7 @@ static struct bt_config *bt_config_help_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { poptContext pc = NULL; char *arg = NULL; @@ -1997,7 +2065,7 @@ static struct bt_config *bt_config_query_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { poptContext pc = NULL; char *arg = NULL; @@ -2005,7 +2073,10 @@ struct bt_config *bt_config_query_from_args(int argc, const char *argv[], int ret; struct bt_config *cfg = NULL; const char *leftover; - struct bt_private_value *params = bt_private_value_null; + bt_value *params; + + params = bt_value_null; + bt_value_get_ref(bt_value_null); *retcode = 0; cfg = bt_config_query_create(initial_plugin_paths); @@ -2048,8 +2119,8 @@ struct bt_config *bt_config_query_from_args(int argc, const char *argv[], break; case OPT_PARAMS: { - bt_object_put_ref(params); - params = bt_private_value_from_arg(arg); + bt_value_put_ref(params); + params = bt_value_from_arg(arg); if (!params) { printf_err("Invalid format for --params option's argument:\n %s\n", arg); @@ -2139,7 +2210,7 @@ end: poptFreeContext(pc); } - bt_object_put_ref(params); + bt_value_put_ref(params); free(arg); return cfg; } @@ -2186,7 +2257,7 @@ static struct bt_config *bt_config_list_plugins_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { poptContext pc = NULL; char *arg = NULL; @@ -2301,7 +2372,7 @@ void print_run_usage(FILE *fp) fprintf(fp, " in the plugin PLUGIN, add it to the graph,\n"); fprintf(fp, " and optionally name it NAME (you can also\n"); fprintf(fp, " specify the name with --name)\n"); - fprintf(fp, " -C, --connect=CONNECTION Connect two created components (see the\n"); + fprintf(fp, " -x, --connect=CONNECTION Connect two created components (see the\n"); fprintf(fp, " expected format of CONNECTION below)\n"); fprintf(fp, " --key=KEY Set the current initialization string\n"); fprintf(fp, " parameter key to KEY (see --value)\n"); @@ -2376,26 +2447,26 @@ static struct bt_config *bt_config_run_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { poptContext pc = NULL; char *arg = NULL; struct bt_config_component *cur_cfg_comp = NULL; enum bt_config_component_dest cur_cfg_comp_dest = BT_CONFIG_COMPONENT_DEST_UNKNOWN; - struct bt_private_value *cur_base_params = NULL; + bt_value *cur_base_params = NULL; int opt, ret = 0; struct bt_config *cfg = NULL; - struct bt_private_value *instance_names = NULL; - struct bt_private_value *connection_args = NULL; + bt_value *instance_names = NULL; + bt_value *connection_args = NULL; GString *cur_param_key = NULL; char error_buf[256] = { 0 }; long retry_duration = -1; - enum bt_value_status status; + bt_value_status status; struct poptOption run_long_options[] = { { "base-params", 'b', POPT_ARG_STRING, NULL, OPT_BASE_PARAMS, NULL, NULL }, { "component", 'c', POPT_ARG_STRING, NULL, OPT_COMPONENT, NULL, NULL }, - { "connect", 'C', POPT_ARG_STRING, NULL, OPT_CONNECT, NULL, NULL }, + { "connect", 'x', POPT_ARG_STRING, NULL, OPT_CONNECT, NULL, NULL }, { "help", 'h', POPT_ARG_NONE, NULL, OPT_HELP, NULL, NULL }, { "key", '\0', POPT_ARG_STRING, NULL, OPT_KEY, NULL, NULL }, { "name", 'n', POPT_ARG_STRING, NULL, OPT_NAME, NULL, NULL }, @@ -2430,19 +2501,19 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], cfg->cmd_data.run.retry_duration_us = 100000; cfg->omit_system_plugin_path = force_omit_system_plugin_path; cfg->omit_home_plugin_path = force_omit_home_plugin_path; - cur_base_params = bt_private_value_map_create(); + cur_base_params = bt_value_map_create(); if (!cur_base_params) { print_err_oom(); goto error; } - instance_names = bt_private_value_map_create(); + instance_names = bt_value_map_create(); if (!instance_names) { print_err_oom(); goto error; } - connection_args = bt_private_value_array_create(); + connection_args = bt_value_array_create(); if (!connection_args) { print_err_oom(); goto error; @@ -2515,10 +2586,9 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], } BT_ASSERT(cur_base_params); - bt_object_put_ref(cur_cfg_comp->params); - status = bt_value_copy( - &cur_cfg_comp->params, - bt_private_value_as_value(cur_base_params)); + bt_value_put_ref(cur_cfg_comp->params); + status = bt_value_copy(cur_base_params, + &cur_cfg_comp->params); if (status != BT_VALUE_STATUS_OK) { print_err_oom(); goto error; @@ -2529,8 +2599,8 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], } case OPT_PARAMS: { - struct bt_private_value *params; - struct bt_private_value *params_to_set; + bt_value *params; + bt_value *params_to_set; if (!cur_cfg_comp) { printf_err("Cannot add parameters to unavailable component:\n %s\n", @@ -2538,17 +2608,16 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], goto error; } - params = bt_private_value_from_arg(arg); + params = bt_value_from_arg(arg); if (!params) { printf_err("Invalid format for --params option's argument:\n %s\n", arg); goto error; } - status = bt_value_map_extend(¶ms_to_set, - bt_private_value_as_value(cur_cfg_comp->params), - bt_private_value_as_value(params)); - BT_OBJECT_PUT_REF_AND_RESET(params); + status = bt_value_map_extend(cur_cfg_comp->params, + params, ¶ms_to_set); + BT_VALUE_PUT_REF_AND_RESET(params); if (status != BT_VALUE_STATUS_OK) { printf_err("Cannot extend current component parameters with --params option's argument:\n %s\n", arg); @@ -2579,7 +2648,7 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], goto error; } - if (bt_private_value_map_insert_string_entry(cur_cfg_comp->params, + if (bt_value_map_insert_string_entry(cur_cfg_comp->params, cur_param_key->str, arg)) { print_err_oom(); goto error; @@ -2596,8 +2665,8 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], break; case OPT_BASE_PARAMS: { - struct bt_private_value *params = - bt_private_value_from_arg(arg); + bt_value *params = + bt_value_from_arg(arg); if (!params) { printf_err("Invalid format for --base-params option's argument:\n %s\n", @@ -2609,15 +2678,15 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], break; } case OPT_RESET_BASE_PARAMS: - BT_OBJECT_PUT_REF_AND_RESET(cur_base_params); - cur_base_params = bt_private_value_map_create(); + BT_VALUE_PUT_REF_AND_RESET(cur_base_params); + cur_base_params = bt_value_map_create(); if (!cur_base_params) { print_err_oom(); goto error; } break; case OPT_CONNECT: - if (bt_private_value_array_append_string_element( + if (bt_value_array_append_string_element( connection_args, arg)) { print_err_oom(); goto error; @@ -2686,7 +2755,7 @@ struct bt_config *bt_config_run_from_args(int argc, const char *argv[], } ret = bt_config_cli_args_create_connections(cfg, - bt_private_value_as_value(connection_args), + connection_args, error_buf, 256); if (ret) { printf_err("Cannot creation connections:\n%s", error_buf); @@ -2710,17 +2779,17 @@ end: free(arg); BT_OBJECT_PUT_REF_AND_RESET(cur_cfg_comp); - BT_OBJECT_PUT_REF_AND_RESET(cur_base_params); - BT_OBJECT_PUT_REF_AND_RESET(instance_names); - BT_OBJECT_PUT_REF_AND_RESET(connection_args); + BT_VALUE_PUT_REF_AND_RESET(cur_base_params); + BT_VALUE_PUT_REF_AND_RESET(instance_names); + BT_VALUE_PUT_REF_AND_RESET(connection_args); return cfg; } static -struct bt_config *bt_config_run_from_args_array(struct bt_value *run_args, +struct bt_config *bt_config_run_from_args_array(const bt_value *run_args, int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *cfg = NULL; const char **argv; @@ -2741,8 +2810,9 @@ struct bt_config *bt_config_run_from_args_array(struct bt_value *run_args, goto end; } for (i = 0; i < len; i++) { - struct bt_value *arg_value = - bt_value_array_borrow_element_by_index(run_args, i); + const bt_value *arg_value = + bt_value_array_borrow_element_by_index_const(run_args, + i); const char *arg; BT_ASSERT(arg_value); @@ -2940,7 +3010,7 @@ struct poptOption convert_long_options[] = { static GString *get_component_auto_name(const char *prefix, - struct bt_value *existing_names) + const bt_value *existing_names) { unsigned int i = 0; GString *auto_name = g_string_new(NULL); @@ -2969,12 +3039,12 @@ struct implicit_component_args { GString *comp_arg; GString *name_arg; GString *params_arg; - struct bt_private_value *extra_params; + bt_value *extra_params; }; static int assign_name_to_implicit_component(struct implicit_component_args *args, - const char *prefix, struct bt_private_value *existing_names, + const char *prefix, bt_value *existing_names, GList **comp_names, bool append_to_comp_names) { int ret = 0; @@ -2985,7 +3055,7 @@ int assign_name_to_implicit_component(struct implicit_component_args *args, } name = get_component_auto_name(prefix, - bt_private_value_as_value(existing_names)); + existing_names); if (!name) { ret = -1; @@ -2994,7 +3064,7 @@ int assign_name_to_implicit_component(struct implicit_component_args *args, g_string_assign(args->name_arg, name->str); - if (bt_private_value_map_insert_entry(existing_names, name->str, + if (bt_value_map_insert_entry(existing_names, name->str, bt_value_null)) { print_err_oom(); ret = -1; @@ -3017,7 +3087,7 @@ end: static int append_run_args_for_implicit_component( struct implicit_component_args *impl_args, - struct bt_private_value *run_args) + bt_value *run_args) { int ret = 0; size_t i; @@ -3026,55 +3096,53 @@ int append_run_args_for_implicit_component( goto end; } - if (bt_private_value_array_append_string_element(run_args, "--component")) { + if (bt_value_array_append_string_element(run_args, "--component")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, impl_args->comp_arg->str)) { + if (bt_value_array_append_string_element(run_args, impl_args->comp_arg->str)) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, "--name")) { + if (bt_value_array_append_string_element(run_args, "--name")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, impl_args->name_arg->str)) { + if (bt_value_array_append_string_element(run_args, impl_args->name_arg->str)) { print_err_oom(); goto error; } if (impl_args->params_arg->len > 0) { - if (bt_private_value_array_append_string_element(run_args, "--params")) { + if (bt_value_array_append_string_element(run_args, "--params")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, + if (bt_value_array_append_string_element(run_args, impl_args->params_arg->str)) { print_err_oom(); goto error; } } - for (i = 0; i < bt_value_array_get_size( - bt_private_value_as_value(impl_args->extra_params)); + for (i = 0; i < bt_value_array_get_size(impl_args->extra_params); i++) { - struct bt_value *elem; + const bt_value *elem; const char *arg; - elem = bt_value_array_borrow_element_by_index( - bt_private_value_as_value(impl_args->extra_params), - i); + elem = bt_value_array_borrow_element_by_index(impl_args->extra_params, + i); if (!elem) { goto error; } BT_ASSERT(bt_value_is_string(elem)); arg = bt_value_string_get(elem); - ret = bt_private_value_array_append_string_element(run_args, arg); + ret = bt_value_array_append_string_element(run_args, arg); if (ret) { print_err_oom(); goto error; @@ -3107,7 +3175,7 @@ void finalize_implicit_component_args(struct implicit_component_args *args) g_string_free(args->params_arg, TRUE); } - bt_object_put_ref(args->extra_params); + bt_value_put_ref(args->extra_params); } static @@ -3131,7 +3199,7 @@ int init_implicit_component_args(struct implicit_component_args *args, args->comp_arg = g_string_new(comp_arg); args->name_arg = g_string_new(NULL); args->params_arg = g_string_new(NULL); - args->extra_params = bt_private_value_array_create(); + args->extra_params = bt_value_array_create(); if (!args->comp_arg || !args->name_arg || !args->params_arg || !args->extra_params) { @@ -3165,25 +3233,25 @@ int append_implicit_component_extra_param(struct implicit_component_args *args, BT_ASSERT(key); BT_ASSERT(value); - if (bt_private_value_array_append_string_element(args->extra_params, "--key")) { + if (bt_value_array_append_string_element(args->extra_params, "--key")) { print_err_oom(); ret = -1; goto end; } - if (bt_private_value_array_append_string_element(args->extra_params, key)) { + if (bt_value_array_append_string_element(args->extra_params, key)) { print_err_oom(); ret = -1; goto end; } - if (bt_private_value_array_append_string_element(args->extra_params, "--value")) { + if (bt_value_array_append_string_element(args->extra_params, "--value")) { print_err_oom(); ret = -1; goto end; } - if (bt_private_value_array_append_string_element(args->extra_params, value)) { + if (bt_value_array_append_string_element(args->extra_params, value)) { print_err_oom(); ret = -1; goto end; @@ -3196,8 +3264,8 @@ end: static int convert_append_name_param(enum bt_config_component_dest dest, GString *cur_name, GString *cur_name_prefix, - struct bt_private_value *run_args, - struct bt_private_value *all_names, + bt_value *run_args, + bt_value *all_names, GList **source_names, GList **filter_names, GList **sink_names) { @@ -3214,16 +3282,15 @@ int convert_append_name_param(enum bt_config_component_dest dest, * component. */ name = get_component_auto_name(cur_name_prefix->str, - bt_private_value_as_value(all_names)); + all_names); append_name_opt = true; } else { /* * An explicit name was provided for the user * component. */ - if (bt_value_map_has_entry( - bt_private_value_as_value(all_names), - cur_name->str)) { + if (bt_value_map_has_entry(all_names, + cur_name->str)) { printf_err("Duplicate component instance name:\n %s\n", cur_name->str); goto error; @@ -3241,7 +3308,7 @@ int convert_append_name_param(enum bt_config_component_dest dest, * Remember this name globally, for the uniqueness of * all component names. */ - if (bt_private_value_map_insert_entry(all_names, name->str, bt_value_null)) { + if (bt_value_map_insert_entry(all_names, name->str, bt_value_null)) { print_err_oom(); goto error; } @@ -3250,12 +3317,12 @@ int convert_append_name_param(enum bt_config_component_dest dest, * Append the --name option if necessary. */ if (append_name_opt) { - if (bt_private_value_array_append_string_element(run_args, "--name")) { + if (bt_value_array_append_string_element(run_args, "--name")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, name->str)) { + if (bt_value_array_append_string_element(run_args, name->str)) { print_err_oom(); goto error; } @@ -3323,7 +3390,7 @@ end: * function. */ static -int append_connect_arg(struct bt_private_value *run_args, +int append_connect_arg(bt_value *run_args, const char *upstream_name, const char *downstream_name) { int ret = 0; @@ -3337,7 +3404,7 @@ int append_connect_arg(struct bt_private_value *run_args, goto end; } - ret = bt_private_value_array_append_string_element(run_args, "--connect"); + ret = bt_value_array_append_string_element(run_args, "--connect"); if (ret) { print_err_oom(); ret = -1; @@ -3347,7 +3414,7 @@ int append_connect_arg(struct bt_private_value *run_args, g_string_append(arg, e_upstream_name->str); g_string_append_c(arg, ':'); g_string_append(arg, e_downstream_name->str); - ret = bt_private_value_array_append_string_element(run_args, arg->str); + ret = bt_value_array_append_string_element(run_args, arg->str); if (ret) { print_err_oom(); ret = -1; @@ -3374,7 +3441,7 @@ end: * Appends the run command's --connect options for the convert command. */ static -int convert_auto_connect(struct bt_private_value *run_args, +int convert_auto_connect(bt_value *run_args, GList *source_names, GList *filter_names, GList *sink_names) { @@ -3534,7 +3601,7 @@ int fill_implicit_ctf_inputs_args(GPtrArray *implicit_ctf_inputs_args, { int ret = 0; GList *leftover; - enum bt_value_status status; + bt_value_status status; for (leftover = leftovers; leftover != NULL; leftover = g_list_next(leftover)) { @@ -3557,10 +3624,9 @@ int fill_implicit_ctf_inputs_args(GPtrArray *implicit_ctf_inputs_args, * We need our own copy of the extra parameters because * this is where the unique path goes. */ - BT_OBJECT_PUT_REF_AND_RESET(impl_args->extra_params); - status = bt_value_copy(&impl_args->extra_params, - bt_private_value_as_value( - base_implicit_ctf_input_args->extra_params)); + BT_VALUE_PUT_REF_AND_RESET(impl_args->extra_params); + status = bt_value_copy(base_implicit_ctf_input_args->extra_params, + &impl_args->extra_params); if (status != BT_VALUE_STATUS_OK) { print_err_oom(); destroy_implicit_component_args(impl_args); @@ -3597,7 +3663,7 @@ static struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_private_value *initial_plugin_paths, char *log_level) + const bt_value *initial_plugin_paths, char *log_level) { poptContext pc = NULL; char *arg = NULL; @@ -3616,8 +3682,8 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], bool print_run_args = false; bool print_run_args_0 = false; bool print_ctf_metadata = false; - struct bt_private_value *run_args = NULL; - struct bt_private_value *all_names = NULL; + bt_value *run_args = NULL; + bt_value *all_names = NULL; GList *source_names = NULL; GList *filter_names = NULL; GList *sink_names = NULL; @@ -3631,14 +3697,13 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], struct implicit_component_args implicit_debug_info_args = { 0 }; struct implicit_component_args implicit_muxer_args = { 0 }; struct implicit_component_args implicit_trimmer_args = { 0 }; - struct bt_private_value *plugin_paths; + bt_value *plugin_paths; char error_buf[256] = { 0 }; size_t i; struct bt_common_lttng_live_url_parts lttng_live_url_parts = { 0 }; char *output = NULL; - plugin_paths = initial_plugin_paths; - bt_object_get_ref(plugin_paths); + (void) bt_value_copy(initial_plugin_paths, &plugin_paths); *retcode = 0; @@ -3695,13 +3760,13 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - all_names = bt_private_value_map_create(); + all_names = bt_value_map_create(); if (!all_names) { print_err_oom(); goto error; } - run_args = bt_private_value_array_create(); + run_args = bt_value_array_create(); if (!run_args) { print_err_oom(); goto error; @@ -3755,7 +3820,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], switch (opt) { case OPT_COMPONENT: { - enum bt_component_class_type type; + bt_component_class_type type; const char *type_prefix; /* Append current component's name if needed */ @@ -3798,13 +3863,13 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], abort(); } - if (bt_private_value_array_append_string_element(run_args, + if (bt_value_array_append_string_element(run_args, "--component")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3827,13 +3892,13 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_private_value_array_append_string_element(run_args, + if (bt_value_array_append_string_element(run_args, "--params")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3845,22 +3910,22 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_private_value_array_append_string_element(run_args, "--key")) { + if (bt_value_array_append_string_element(run_args, "--key")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, "path")) { + if (bt_value_array_append_string_element(run_args, "path")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, "--value")) { + if (bt_value_array_append_string_element(run_args, "--value")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3872,22 +3937,22 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_private_value_array_append_string_element(run_args, "--key")) { + if (bt_value_array_append_string_element(run_args, "--key")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, "url")) { + if (bt_value_array_append_string_element(run_args, "url")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, "--value")) { + if (bt_value_array_append_string_element(run_args, "--value")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3899,12 +3964,12 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_private_value_array_append_string_element(run_args, "--name")) { + if (bt_value_array_append_string_element(run_args, "--name")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3914,20 +3979,20 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], case OPT_OMIT_HOME_PLUGIN_PATH: force_omit_home_plugin_path = true; - if (bt_private_value_array_append_string_element(run_args, + if (bt_value_array_append_string_element(run_args, "--omit-home-plugin-path")) { print_err_oom(); goto error; } break; case OPT_RETRY_DURATION: - if (bt_private_value_array_append_string_element(run_args, + if (bt_value_array_append_string_element(run_args, "--retry-duration")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -3935,7 +4000,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], case OPT_OMIT_SYSTEM_PLUGIN_PATH: force_omit_system_plugin_path = true; - if (bt_private_value_array_append_string_element(run_args, + if (bt_value_array_append_string_element(run_args, "--omit-system-plugin-path")) { print_err_oom(); goto error; @@ -3947,13 +4012,13 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - if (bt_private_value_array_append_string_element(run_args, + if (bt_value_array_append_string_element(run_args, "--plugin-path")) { print_err_oom(); goto error; } - if (bt_private_value_array_append_string_element(run_args, arg)) { + if (bt_value_array_append_string_element(run_args, arg)) { print_err_oom(); goto error; } @@ -4117,7 +4182,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], append_implicit_component_param( &implicit_text_args, "clock-gmt", "yes"); append_implicit_component_param( - &implicit_trimmer_args, "clock-gmt", "yes"); + &implicit_trimmer_args, "gmt", "yes"); implicit_text_args.exists = true; break; case OPT_CLOCK_OFFSET: @@ -4172,7 +4237,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], break; case OPT_FIELDS: { - struct bt_private_value *fields = fields_from_arg(arg); + bt_value *fields = fields_from_arg(arg); if (!fields) { goto error; @@ -4181,8 +4246,8 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], implicit_text_args.exists = true; ret = insert_flat_params_from_array( implicit_text_args.params_arg, - bt_private_value_as_value(fields), "field"); - bt_object_put_ref(fields); + fields, "field"); + bt_value_put_ref(fields); if (ret) { goto error; } @@ -4190,7 +4255,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], } case OPT_NAMES: { - struct bt_private_value *names = names_from_arg(arg); + bt_value *names = names_from_arg(arg); if (!names) { goto error; @@ -4199,8 +4264,8 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], implicit_text_args.exists = true; ret = insert_flat_params_from_array( implicit_text_args.params_arg, - bt_private_value_as_value(names), "name"); - bt_object_put_ref(names); + names, "name"); + bt_value_put_ref(names); if (ret) { goto error; } @@ -4689,12 +4754,10 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto error; } - for (i = 0; i < bt_value_array_get_size( - bt_private_value_as_value(run_args)); i++) { - struct bt_value *arg_value = - bt_value_array_borrow_element_by_index( - bt_private_value_as_value(run_args), - i); + for (i = 0; i < bt_value_array_get_size(run_args); i++) { + const bt_value *arg_value = + bt_value_array_borrow_element_by_index(run_args, + i); const char *arg; GString *quoted = NULL; const char *arg_to_print; @@ -4719,8 +4782,7 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], g_string_free(quoted, TRUE); } - if (i < bt_value_array_get_size( - bt_private_value_as_value(run_args)) - 1) { + if (i < bt_value_array_get_size(run_args) - 1) { if (print_run_args) { putchar(' '); } else { @@ -4734,10 +4796,10 @@ struct bt_config *bt_config_convert_from_args(int argc, const char *argv[], goto end; } - cfg = bt_config_run_from_args_array( - bt_private_value_as_value(run_args), retcode, - force_omit_system_plugin_path, force_omit_home_plugin_path, - initial_plugin_paths); + cfg = bt_config_run_from_args_array(run_args, retcode, + force_omit_system_plugin_path, + force_omit_home_plugin_path, + initial_plugin_paths); if (!cfg) { goto error; } @@ -4769,8 +4831,8 @@ end: g_ptr_array_free(implicit_ctf_inputs_args, TRUE); } - bt_object_put_ref(run_args); - bt_object_put_ref(all_names); + bt_value_put_ref(run_args); + bt_value_put_ref(all_names); destroy_glist_of_gstring(source_names); destroy_glist_of_gstring(filter_names); destroy_glist_of_gstring(sink_names); @@ -4783,7 +4845,7 @@ end: finalize_implicit_component_args(&implicit_debug_info_args); finalize_implicit_component_args(&implicit_muxer_args); finalize_implicit_component_args(&implicit_trimmer_args); - bt_object_put_ref(plugin_paths); + bt_value_put_ref(plugin_paths); bt_common_destroy_lttng_live_url_parts(<tng_live_url_parts); return cfg; } @@ -4851,7 +4913,7 @@ char log_level_from_arg(const char *arg) struct bt_config *bt_config_cli_args_create(int argc, const char *argv[], int *retcode, bool force_omit_system_plugin_path, bool force_omit_home_plugin_path, - struct bt_private_value *initial_plugin_paths) + const bt_value *initial_plugin_paths) { struct bt_config *config = NULL; int i; @@ -4872,13 +4934,13 @@ struct bt_config *bt_config_cli_args_create(int argc, const char *argv[], *retcode = -1; if (!initial_plugin_paths) { - initial_plugin_paths = bt_private_value_array_create(); + initial_plugin_paths = bt_value_array_create(); if (!initial_plugin_paths) { *retcode = 1; goto end; } } else { - bt_object_get_ref(initial_plugin_paths); + bt_value_get_ref(initial_plugin_paths); } if (argc <= 1) { @@ -5040,6 +5102,6 @@ struct bt_config *bt_config_cli_args_create(int argc, const char *argv[], } end: - bt_object_put_ref(initial_plugin_paths); + bt_value_put_ref(initial_plugin_paths); return config; }