Code

store: Let sdb_store_json_formatter_t inherit from sdb_object_t.
[sysdb.git] / src / core / store_exec.c
index 6c68dc5fd1d4b9fce1486dea01ff2e44d97e96ab..6a8e8e74d290aae483d0aee269a276537e1a50e9 100644 (file)
@@ -26,6 +26,7 @@
  */
 
 #include "core/object.h"
+#include "core/plugin.h"
 #include "core/store-private.h"
 #include "frontend/connection.h"
 #include "parser/ast.h"
@@ -137,14 +138,14 @@ exec_fetch(sdb_strbuf_t *buf, sdb_strbuf_t *errbuf, int type,
                                "%s %s.%s to JSON", SDB_STORE_TYPE_TO_NAME(type),
                                hostname, name);
                sdb_strbuf_sprintf(errbuf, "Out of memory");
-               free(f);
+               sdb_object_deref(SDB_OBJ(f));
                sdb_object_deref(SDB_OBJ(obj));
                return -1;
        }
 
        sdb_object_deref(SDB_OBJ(obj));
        sdb_store_json_finish(f);
-       free(f);
+       sdb_object_deref(SDB_OBJ(f));
 
        return SDB_CONNECTION_DATA;
 } /* exec_fetch */
@@ -172,12 +173,12 @@ exec_list(sdb_strbuf_t *buf, sdb_strbuf_t *errbuf, int type,
                sdb_log(SDB_LOG_ERR, "frontend: Failed to serialize "
                                "store to JSON");
                sdb_strbuf_sprintf(errbuf, "Out of memory");
-               free(f);
+               sdb_object_deref(SDB_OBJ(f));
                return -1;
        }
 
        sdb_store_json_finish(f);
-       free(f);
+       sdb_object_deref(SDB_OBJ(f));
 
        return SDB_CONNECTION_DATA;
 } /* exec_list */
@@ -207,12 +208,12 @@ exec_lookup(sdb_strbuf_t *buf, sdb_strbuf_t *errbuf, int type,
                                SDB_STORE_TYPE_TO_NAME(type));
                sdb_strbuf_sprintf(errbuf, "Failed to lookup %ss",
                                SDB_STORE_TYPE_TO_NAME(type));
-               free(f);
+               sdb_object_deref(SDB_OBJ(f));
                return -1;
        }
 
        sdb_store_json_finish(f);
-       free(f);
+       sdb_object_deref(SDB_OBJ(f));
 
        return SDB_CONNECTION_DATA;
 } /* exec_lookup */
@@ -227,19 +228,19 @@ exec_store(sdb_strbuf_t *buf, sdb_strbuf_t *errbuf, sdb_ast_store_t *st)
        switch (st->obj_type) {
        case SDB_HOST:
                strncpy(name, st->name, sizeof(name));
-               status = sdb_store_host(st->name, st->last_update);
+               status = sdb_plugin_store_host(st->name, st->last_update);
                break;
 
        case SDB_SERVICE:
                snprintf(name, sizeof(name), "%s.%s", st->hostname, st->name);
-               status = sdb_store_service(st->hostname, st->name, st->last_update);
+               status = sdb_plugin_store_service(st->hostname, st->name, st->last_update);
                break;
 
        case SDB_METRIC:
                snprintf(name, sizeof(name), "%s.%s", st->hostname, st->name);
                metric_store.type = st->store_type;
                metric_store.id = st->store_id;
-               status = sdb_store_metric(st->hostname, st->name,
+               status = sdb_plugin_store_metric(st->hostname, st->name,
                                &metric_store, st->last_update);
                break;
 
@@ -255,17 +256,17 @@ exec_store(sdb_strbuf_t *buf, sdb_strbuf_t *errbuf, sdb_ast_store_t *st)
                switch (st->parent_type) {
                case 0:
                        type |= SDB_HOST;
-                       status = sdb_store_attribute(st->hostname,
+                       status = sdb_plugin_store_attribute(st->hostname,
                                        st->name, &st->value, st->last_update);
                        break;
 
                case SDB_SERVICE:
-                       status = sdb_store_service_attr(st->hostname, st->parent,
+                       status = sdb_plugin_store_service_attribute(st->hostname, st->parent,
                                        st->name, &st->value, st->last_update);
                        break;
 
                case SDB_METRIC:
-                       status = sdb_store_metric_attr(st->hostname, st->parent,
+                       status = sdb_plugin_store_metric_attribute(st->hostname, st->parent,
                                        st->name, &st->value, st->last_update);
                        break;