From be697302348182a71411ec398beb51d29f925c10 Mon Sep 17 00:00:00 2001 From: Andy Zhou Date: Thu, 9 Jul 2015 13:06:57 -0700 Subject: [PATCH] db-ctl-base: group static functions together This file follows a convention that all static functions are grouped towards the beginning, ahead of public functions. Re-arrange the code to confirm to this convention. No functional changes. Signed-off-by: Andy Zhou Acked-by: Alex Wang --- lib/db-ctl-base.c | 166 +++++++++++++++++++++++----------------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c index 659820b06..86a87d029 100644 --- a/lib/db-ctl-base.c +++ b/lib/db-ctl-base.c @@ -988,6 +988,35 @@ cmd_list(struct ctl_context *ctx) free(columns); } +/* Finds and returns the "struct ctl_table_class *" with 'table_name' by + * searching the 'tables'. */ +static const struct ctl_table_class * +get_table(const char *table_name) +{ + const struct ctl_table_class *table; + const struct ctl_table_class *best_match = NULL; + unsigned int best_score = 0; + + for (table = tables; table->class; table++) { + unsigned int score = score_partial_match(table->class->name, + table_name); + if (score > best_score) { + best_match = table; + best_score = score; + } else if (score == best_score) { + best_match = NULL; + } + } + if (best_match) { + return best_match; + } else if (best_score) { + ctl_fatal("multiple table names match \"%s\"", table_name); + } else { + ctl_fatal("unknown table \"%s\"", table_name); + } + return NULL; +} + static void pre_cmd_find(struct ctl_context *ctx) { @@ -1034,6 +1063,60 @@ cmd_find(struct ctl_context *ctx) free(columns); } +/* Sets the column of 'row' in 'table'. */ +static void +set_column(const struct ctl_table_class *table, + const struct ovsdb_idl_row *row, const char *arg, + struct ovsdb_symbol_table *symtab) +{ + const struct ovsdb_idl_column *column; + char *key_string, *value_string; + char *error; + + error = parse_column_key_value(arg, table, &column, &key_string, + NULL, NULL, 0, &value_string); + die_if_error(error); + if (!value_string) { + ctl_fatal("%s: missing value", arg); + } + check_mutable(row, column); + + if (key_string) { + union ovsdb_atom key, value; + struct ovsdb_datum datum; + + if (column->type.value.type == OVSDB_TYPE_VOID) { + ctl_fatal("cannot specify key to set for non-map column %s", + column->name); + } + + die_if_error(ovsdb_atom_from_string(&key, &column->type.key, + key_string, symtab)); + die_if_error(ovsdb_atom_from_string(&value, &column->type.value, + value_string, symtab)); + + ovsdb_datum_init_empty(&datum); + ovsdb_datum_add_unsafe(&datum, &key, &value, &column->type); + + ovsdb_atom_destroy(&key, column->type.key.type); + ovsdb_atom_destroy(&value, column->type.value.type); + + ovsdb_datum_union(&datum, ovsdb_idl_read(row, column), + &column->type, false); + ovsdb_idl_txn_verify(row, column); + ovsdb_idl_txn_write(row, column, &datum); + } else { + struct ovsdb_datum datum; + + die_if_error(ovsdb_datum_from_string(&datum, &column->type, + value_string, symtab)); + ovsdb_idl_txn_write(row, column, &datum); + } + + free(key_string); + free(value_string); +} + static void pre_cmd_set(struct ctl_context *ctx) { @@ -1998,89 +2081,6 @@ ctl_context_done(struct ctl_context *ctx, invalidate_cache(ctx); } -/* Finds and returns the "struct ctl_table_class *" with 'table_name' by - * searching the 'tables'. */ -static const struct ctl_table_class * -get_table(const char *table_name) -{ - const struct ctl_table_class *table; - const struct ctl_table_class *best_match = NULL; - unsigned int best_score = 0; - - for (table = tables; table->class; table++) { - unsigned int score = score_partial_match(table->class->name, - table_name); - if (score > best_score) { - best_match = table; - best_score = score; - } else if (score == best_score) { - best_match = NULL; - } - } - if (best_match) { - return best_match; - } else if (best_score) { - ctl_fatal("multiple table names match \"%s\"", table_name); - } else { - ctl_fatal("unknown table \"%s\"", table_name); - } - return NULL; -} - -/* Sets the column of 'row' in 'table'. */ -static void -set_column(const struct ctl_table_class *table, - const struct ovsdb_idl_row *row, const char *arg, - struct ovsdb_symbol_table *symtab) -{ - const struct ovsdb_idl_column *column; - char *key_string, *value_string; - char *error; - - error = parse_column_key_value(arg, table, &column, &key_string, - NULL, NULL, 0, &value_string); - die_if_error(error); - if (!value_string) { - ctl_fatal("%s: missing value", arg); - } - check_mutable(row, column); - - if (key_string) { - union ovsdb_atom key, value; - struct ovsdb_datum datum; - - if (column->type.value.type == OVSDB_TYPE_VOID) { - ctl_fatal("cannot specify key to set for non-map column %s", - column->name); - } - - die_if_error(ovsdb_atom_from_string(&key, &column->type.key, - key_string, symtab)); - die_if_error(ovsdb_atom_from_string(&value, &column->type.value, - value_string, symtab)); - - ovsdb_datum_init_empty(&datum); - ovsdb_datum_add_unsafe(&datum, &key, &value, &column->type); - - ovsdb_atom_destroy(&key, column->type.key.type); - ovsdb_atom_destroy(&value, column->type.value.type); - - ovsdb_datum_union(&datum, ovsdb_idl_read(row, column), - &column->type, false); - ovsdb_idl_txn_verify(row, column); - ovsdb_idl_txn_write(row, column, &datum); - } else { - struct ovsdb_datum datum; - - die_if_error(ovsdb_datum_from_string(&datum, &column->type, - value_string, symtab)); - ovsdb_idl_txn_write(row, column, &datum); - } - - free(key_string); - free(value_string); -} - void ctl_set_column(const char *table_name, const struct ovsdb_idl_row *row, const char *arg, struct ovsdb_symbol_table *symtab) -- 2.20.1