ovsdb-monitor: refactoring ovsdb_monitor_get_initial
authorAndy Zhou <azhou@nicira.com>
Wed, 18 Mar 2015 04:25:20 +0000 (21:25 -0700)
committerAndy Zhou <azhou@nicira.com>
Sat, 30 May 2015 00:39:50 +0000 (17:39 -0700)
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>
ovsdb/jsonrpc-server.c
ovsdb/monitor.c
ovsdb/monitor.h

index 5514897..1d57600 100644 (file)
@@ -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);
+
 \f
 /* 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) {
index a1aeb5f..95299ce 100644 (file)
@@ -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
index 82c9a57..aefe1d5 100644 (file)
@@ -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