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>
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 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. */
\f
/* JSON-RPC database server. */
- 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);
ovsdb_monitor_get_initial(const struct ovsdb_monitor *dbmon)
{
struct ovsdb_monitor_aux aux;
struct shash_node *node;
ovsdb_monitor_get_initial(const struct ovsdb_monitor *dbmon)
{
struct ovsdb_monitor_aux aux;
struct shash_node *node;
ovsdb_monitor_init_aux(&aux, dbmon);
SHASH_FOR_EACH (node, &dbmon->tables) {
ovsdb_monitor_init_aux(&aux, dbmon);
SHASH_FOR_EACH (node, &dbmon->tables) {
- json = ovsdb_monitor_compose_table_update(dbmon, true);
- return json ? json : json_object_create();
bool ovsdb_monitor_needs_flush(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
void ovsdb_monitor_destroy(struct ovsdb_monitor *dbmon);
#endif