diff options
author | Andy Zhou <azhou@nicira.com> | 2015-03-17 21:25:20 -0700 |
---|---|---|
committer | Andy Zhou <azhou@nicira.com> | 2015-05-29 17:39:50 -0700 |
commit | 61b63013e6074478d264d20c2db0edf17e57a0ff (patch) | |
tree | d1cc7b043421a0cd5f4b3a897872646000e0fc61 /ovsdb | |
parent | 2fa1df7b88611f8858882147b5db122c5644799c (diff) | |
download | openvswitch-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.c | 9 | ||||
-rw-r--r-- | ovsdb/monitor.c | 5 | ||||
-rw-r--r-- | ovsdb/monitor.h | 2 |
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 |