Code

Renamed in-memory store types and functions to sdb_memstore*.
[sysdb.git] / src / core / store_json.c
index 4fd309b3ec4ac6fa81f982fd9e71b2d3226d0af7..b39ff210a2aedfaf0d8b0064bad354234d8109bc 100644 (file)
@@ -382,11 +382,9 @@ sdb_store_json_formatter(sdb_strbuf_t *buf, int type, int flags)
 /* TODO: Move sdb_store_emit* somewhere else. */
 
 int
-sdb_store_emit(sdb_store_obj_t *obj, sdb_store_writer_t *w, sdb_object_t *wd)
+sdb_memstore_emit(sdb_memstore_obj_t *obj, sdb_store_writer_t *w, sdb_object_t *wd)
 {
-       if ((! obj) || (! w)
-                       || (! w->store_host) || (! w->store_service)
-                       || (! w->store_metric) || (! w->store_attribute))
+       if ((! obj) || (! w))
                return -1;
 
        switch (obj->type) {
@@ -399,6 +397,8 @@ sdb_store_emit(sdb_store_obj_t *obj, sdb_store_writer_t *w, sdb_object_t *wd)
                                (const char * const *)obj->backends,
                                obj->backends_num,
                        };
+                       if (! w->store_host)
+                               return -1;
                        return w->store_host(&host, wd);
                }
        case SDB_SERVICE:
@@ -411,6 +411,8 @@ sdb_store_emit(sdb_store_obj_t *obj, sdb_store_writer_t *w, sdb_object_t *wd)
                                (const char * const *)obj->backends,
                                obj->backends_num,
                        };
+                       if (! w->store_service)
+                               return -1;
                        return w->store_service(&service, wd);
                }
        case SDB_METRIC:
@@ -427,6 +429,8 @@ sdb_store_emit(sdb_store_obj_t *obj, sdb_store_writer_t *w, sdb_object_t *wd)
                                (const char * const *)obj->backends,
                                obj->backends_num,
                        };
+                       if (! w->store_metric)
+                               return -1;
                        return w->store_metric(&metric, wd);
                }
        case SDB_ATTRIBUTE:
@@ -445,21 +449,23 @@ sdb_store_emit(sdb_store_obj_t *obj, sdb_store_writer_t *w, sdb_object_t *wd)
                        if (obj->parent && (obj->parent->type != SDB_HOST)
                                        && obj->parent->parent)
                                attr.hostname = obj->parent->parent->_name;
+                       if (! w->store_attribute)
+                               return -1;
                        return w->store_attribute(&attr, wd);
                }
        }
 
        return -1;
-} /* sdb_store_emit */
+} /* sdb_memstore_emit */
 
 int
-sdb_store_emit_full(sdb_store_obj_t *obj, sdb_store_matcher_t *filter,
+sdb_memstore_emit_full(sdb_memstore_obj_t *obj, sdb_memstore_matcher_t *filter,
                sdb_store_writer_t *w, sdb_object_t *wd)
 {
        sdb_avltree_t *trees[] = { NULL, NULL, NULL };
        size_t i;
 
-       if (sdb_store_emit(obj, w, wd))
+       if (sdb_memstore_emit(obj, w, wd))
                return -1;
 
        if (obj->type == SDB_HOST) {
@@ -484,13 +490,13 @@ sdb_store_emit_full(sdb_store_obj_t *obj, sdb_store_matcher_t *filter,
 
                iter = sdb_avltree_get_iter(trees[i]);
                while (sdb_avltree_iter_has_next(iter)) {
-                       sdb_store_obj_t *child;
+                       sdb_memstore_obj_t *child;
                        child = STORE_OBJ(sdb_avltree_iter_get_next(iter));
 
-                       if (filter && (! sdb_store_matcher_matches(filter, child, NULL)))
+                       if (filter && (! sdb_memstore_matcher_matches(filter, child, NULL)))
                                continue;
 
-                       if (sdb_store_emit_full(child, filter, w, wd)) {
+                       if (sdb_memstore_emit_full(child, filter, w, wd)) {
                                sdb_avltree_iter_destroy(iter);
                                return -1;
                        }
@@ -498,7 +504,7 @@ sdb_store_emit_full(sdb_store_obj_t *obj, sdb_store_matcher_t *filter,
                sdb_avltree_iter_destroy(iter);
        }
        return 0;
-} /* sdb_store_emit_full */
+} /* sdb_memstore_emit_full */
 
 int
 sdb_store_json_finish(sdb_store_json_formatter_t *f)