X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Finclude%2Fcore%2Fstore.h;h=818297fddb2580ecfd4eeeae8352cb41a6087d0a;hp=f42d217ebe5dba73541d79a0de74a94d8f2081b7;hb=f9fb6c5e2416e88c9be18709c7a584c6a75cf647;hpb=3e4817902cb7285e5ab7a4f546861194f6e4ea1c diff --git a/src/include/core/store.h b/src/include/core/store.h index f42d217..818297f 100644 --- a/src/include/core/store.h +++ b/src/include/core/store.h @@ -121,6 +121,7 @@ typedef struct { const char * const *backends; size_t backends_num; } sdb_store_host_t; +#define SDB_STORE_HOST_INIT { NULL, 0, 0, NULL, 0 } /* * sdb_store_service_t represents the meta-data of a stored service object. @@ -134,6 +135,7 @@ typedef struct { const char * const *backends; size_t backends_num; } sdb_store_service_t; +#define SDB_STORE_SERVICE_INIT { NULL, NULL, 0, 0, NULL, 0 } /* * sdb_metric_store_t specifies how to access a metric's data. @@ -159,6 +161,7 @@ typedef struct { const char * const *backends; size_t backends_num; } sdb_store_metric_t; +#define SDB_STORE_METRIC_INIT { NULL, NULL, { NULL, NULL }, 0, 0, NULL, 0 } /* * sdb_store_attribute_t represents a stored attribute. @@ -175,6 +178,7 @@ typedef struct { const char * const *backends; size_t backends_num; } sdb_store_attribute_t; +#define SDB_STORE_ATTRIBUTE_INIT { NULL, 0, NULL, NULL, SDB_DATA_INIT, 0, 0, NULL, 0 } /* * Expressions represent arithmetic expressions based on stored objects and @@ -288,15 +292,12 @@ typedef struct { * execute_query: * Execute a previously prepared query. The callback may expect that only * queries prepared by its respective prepare callback will be passed to - * this function. - * - * TODO: Instead of letting the executor write directly to a string buffer - * (which cannot easily be merged with other results), let it hand - * all objects to a store-writer. + * this function. The query result will be passed back via the specified + * store writer. */ int (*execute_query)(sdb_object_t *q, - sdb_strbuf_t *buf, sdb_strbuf_t *errbuf, - sdb_object_t *user_data); + sdb_store_writer_t *w, sdb_object_t *wd, + sdb_strbuf_t *errbuf, sdb_object_t *user_data); } sdb_store_reader_t; /* @@ -349,21 +350,6 @@ sdb_store_metric_attr(sdb_store_t *store, const char *hostname, sdb_store_obj_t * sdb_store_get_host(sdb_store_t *store, const char *name); -/* - * sdb_store_fetch_timeseries: - * Fetch the time-series described by the specified host's metric and - * serialize it as JSON into the provided string buffer. The host data is - * retrieved from the specified store. - * - * Returns: - * - 0 on success - * - a negative value else - */ -int -sdb_store_fetch_timeseries(sdb_store_t *store, - const char *hostname, const char *metric, - sdb_timeseries_opts_t *opts, sdb_strbuf_t *buf); - /* * sdb_store_get_child: * Retrieve a host's child object of the specified type and name. The @@ -462,7 +448,7 @@ sdb_store_query_prepare_matcher(sdb_ast_node_t *ast); */ int sdb_store_query_execute(sdb_store_t *store, sdb_store_query_t *m, - sdb_strbuf_t *buf, sdb_strbuf_t *errbuf); + sdb_store_writer_t *w, sdb_object_t *wd, sdb_strbuf_t *errbuf); /* * sdb_store_expr_create: