[ovs-dev] [monitor2 v2 1/9] ovsdb: refactor, add ovsdb_monitor_max_columns()
Andy Zhou
azhou at ovn.org
Tue Nov 24 22:15:58 UTC 2015
From: Andy Zhou <azhou at nicira.com>
This function will have multiple callers in later patches.
Signed-off-by: Andy Zhou <azhou at nicira.com>
Acked-by: Ben Pfaff <blp at ovn.org>
---
ovsdb/monitor.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/ovsdb/monitor.c b/ovsdb/monitor.c
index 7805c60..daf69cd 100644
--- a/ovsdb/monitor.c
+++ b/ovsdb/monitor.c
@@ -545,6 +545,21 @@ ovsdb_monitor_compose_row_update(
return row_json;
}
+static size_t
+ovsdb_monitor_max_columns(struct ovsdb_monitor *dbmon)
+{
+ struct shash_node *node;
+ size_t max_columns = 0;
+
+ SHASH_FOR_EACH (node, &dbmon->tables) {
+ struct ovsdb_monitor_table *mt = node->data;
+
+ max_columns = MAX(max_columns, mt->n_columns);
+ }
+
+ return max_columns;
+}
+
/* Constructs and returns JSON for a <table-updates> object (as described in
* RFC 7047) for all the outstanding changes within 'monitor', starting from
* 'transaction'. */
@@ -553,17 +568,9 @@ ovsdb_monitor_compose_update(struct ovsdb_monitor *dbmon,
bool initial, uint64_t transaction)
{
struct shash_node *node;
- unsigned long int *changed;
struct json *json;
- size_t max_columns;
-
- max_columns = 0;
- SHASH_FOR_EACH (node, &dbmon->tables) {
- struct ovsdb_monitor_table *mt = node->data;
-
- max_columns = MAX(max_columns, mt->n_columns);
- }
- changed = xmalloc(bitmap_n_bytes(max_columns));
+ size_t max_columns = ovsdb_monitor_max_columns(dbmon);
+ unsigned long int *changed = xmalloc(bitmap_n_bytes(max_columns));
json = NULL;
SHASH_FOR_EACH (node, &dbmon->tables) {
--
1.9.1
More information about the dev
mailing list