summaryrefslogtreecommitdiff
path: root/ovsdb
diff options
context:
space:
mode:
authorAndy Zhou <azhou@nicira.com>2015-03-17 21:25:20 -0700
committerAndy Zhou <azhou@nicira.com>2015-05-29 17:39:50 -0700
commit61b63013e6074478d264d20c2db0edf17e57a0ff (patch)
treed1cc7b043421a0cd5f4b3a897872646000e0fc61 /ovsdb
parent2fa1df7b88611f8858882147b5db122c5644799c (diff)
downloadopenvswitch-61b63013e6074478d264d20c2db0edf17e57a0ff.tar.gz
ovsdb-monitor: refactoring ovsdb_monitor_get_initial
Refactoring ovsdb_monitor_get_initial() to not generate JSON object. It only collect changes within the ovsdb_monitor(). ovsdb_jsonrpc_monitor_compose_table_update() is then used to generate JSON object. This change will also make future patch easier. Signed-off-by: Andy Zhou <azhou@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'ovsdb')
-rw-r--r--ovsdb/jsonrpc-server.c9
-rw-r--r--ovsdb/monitor.c5
-rw-r--r--ovsdb/monitor.h2
3 files changed, 9 insertions, 7 deletions
diff --git a/ovsdb/jsonrpc-server.c b/ovsdb/jsonrpc-server.c
index 55148971a..1d57600d1 100644
--- a/ovsdb/jsonrpc-server.c
+++ b/ovsdb/jsonrpc-server.c
@@ -89,6 +89,9 @@ static struct jsonrpc_msg *ovsdb_jsonrpc_monitor_cancel(
static void ovsdb_jsonrpc_monitor_remove_all(struct ovsdb_jsonrpc_session *);
static void ovsdb_jsonrpc_monitor_flush_all(struct ovsdb_jsonrpc_session *);
static bool ovsdb_jsonrpc_monitor_needs_flush(struct ovsdb_jsonrpc_session *);
+static struct json *ovsdb_jsonrpc_monitor_compose_table_update(
+ const struct ovsdb_jsonrpc_monitor *monitor, bool initial);
+
/* JSON-RPC database server. */
@@ -1228,8 +1231,10 @@ ovsdb_jsonrpc_monitor_create(struct ovsdb_jsonrpc_session *s, struct ovsdb *db,
}
}
- return jsonrpc_create_reply(ovsdb_monitor_get_initial(m->dbmon),
- request_id);
+ ovsdb_monitor_get_initial(m->dbmon);
+ json = ovsdb_jsonrpc_monitor_compose_table_update(m, true);
+ json = json ? json : json_object_create();
+ return jsonrpc_create_reply(json, request_id);
error:
if (m) {
diff --git a/ovsdb/monitor.c b/ovsdb/monitor.c
index a1aeb5f51..95299cebb 100644
--- a/ovsdb/monitor.c
+++ b/ovsdb/monitor.c
@@ -505,12 +505,11 @@ ovsdb_monitor_change_cb(const struct ovsdb_row *old,
return true;
}
-struct json *
+void
ovsdb_monitor_get_initial(const struct ovsdb_monitor *dbmon)
{
struct ovsdb_monitor_aux aux;
struct shash_node *node;
- struct json *json;
ovsdb_monitor_init_aux(&aux, dbmon);
SHASH_FOR_EACH (node, &dbmon->tables) {
@@ -524,8 +523,6 @@ ovsdb_monitor_get_initial(const struct ovsdb_monitor *dbmon)
}
}
}
- json = ovsdb_monitor_compose_table_update(dbmon, true);
- return json ? json : json_object_create();
}
void
diff --git a/ovsdb/monitor.h b/ovsdb/monitor.h
index 82c9a578b..aefe1d5d7 100644
--- a/ovsdb/monitor.h
+++ b/ovsdb/monitor.h
@@ -52,7 +52,7 @@ void ovsdb_monitor_table_add_select(struct ovsdb_monitor *dbmon,
bool ovsdb_monitor_needs_flush(struct ovsdb_monitor *dbmon);
-struct json *ovsdb_monitor_get_initial(const struct ovsdb_monitor *dbmon);
+void ovsdb_monitor_get_initial(const struct ovsdb_monitor *dbmon);
void ovsdb_monitor_destroy(struct ovsdb_monitor *dbmon);
#endif