Code

Use stdbool.h's bool type instead of _Bool.
[sysdb.git] / src / frontend / connection-private.h
index ae9cbbc91ba0cfa2dd532cb55795de95164a96fe..1e5e9e53fee775f452ed85454ef8abea79fc1bb4 100644 (file)
@@ -36,6 +36,7 @@
 
 #include "core/object.h"
 #include "core/store.h"
+#include "core/timeseries.h"
 #include "utils/strbuf.h"
 
 #include <inttypes.h>
@@ -72,6 +73,7 @@ struct sdb_conn {
 
        /* user information */
        char *username; /* NULL if the user has not been authenticated */
+       bool  ready; /* indicates that startup finished successfully */
 };
 #define CONN(obj) ((sdb_conn_t *)(obj))
 
@@ -81,46 +83,96 @@ struct sdb_conn {
 
 typedef struct {
        sdb_conn_node_t super;
-       char *name;
-} conn_fetch_t;
-#define CONN_FETCH(obj) ((conn_fetch_t *)(obj))
+       sdb_store_expr_t *expr;
+} conn_expr_t;
+#define CONN_EXPR(obj) ((conn_expr_t *)(obj))
 
 typedef struct {
        sdb_conn_node_t super;
        sdb_store_matcher_t *matcher;
-} conn_node_matcher_t;
-#define CONN_MATCHER(obj) ((conn_node_matcher_t *)(obj))
+} conn_matcher_t;
+#define CONN_MATCHER(obj) ((conn_matcher_t *)(obj))
+
+typedef struct {
+       sdb_conn_node_t super;
+       int type;
+       conn_matcher_t *filter;
+} conn_list_t;
+#define CONN_LIST(obj) ((conn_list_t *)(obj))
+
+typedef struct {
+       sdb_conn_node_t super;
+       int type;
+       char *host;
+       char *name; /* NULL for type == SDB_HOST */
+       conn_matcher_t *filter;
+} conn_fetch_t;
+#define CONN_FETCH(obj) ((conn_fetch_t *)(obj))
 
 typedef struct {
        sdb_conn_node_t super;
-       conn_node_matcher_t *matcher;
+       int type;
+       conn_matcher_t *matcher;
+       conn_matcher_t *filter;
 } conn_lookup_t;
 #define CONN_LOOKUP(obj) ((conn_lookup_t *)(obj))
 
+typedef struct {
+       sdb_conn_node_t super;
+       char *hostname;
+       char *metric;
+       sdb_timeseries_opts_t opts;
+} conn_ts_t;
+#define CONN_TS(obj) ((conn_ts_t *)(obj))
+
 /*
  * type helper functions
  */
+
 static void __attribute__((unused))
-conn_fetch_destroy(sdb_object_t *obj)
+conn_expr_destroy(sdb_object_t *obj)
 {
-       if (CONN_FETCH(obj)->name)
-               free(CONN_FETCH(obj)->name);
-} /* conn_fetch_destroy */
+       sdb_object_deref(SDB_OBJ(CONN_EXPR(obj)->expr));
+} /* conn_expr_destroy */
 
 static void __attribute__((unused))
 conn_matcher_destroy(sdb_object_t *obj)
 {
-       if (CONN_MATCHER(obj)->matcher)
-               sdb_object_deref(SDB_OBJ(CONN_MATCHER(obj)->matcher));
+       sdb_object_deref(SDB_OBJ(CONN_MATCHER(obj)->matcher));
 } /* conn_matcher_destroy */
 
+static void __attribute__((unused))
+conn_list_destroy(sdb_object_t *obj)
+{
+       sdb_object_deref(SDB_OBJ(CONN_LIST(obj)->filter));
+} /* conn_list_destroy */
+
+static void __attribute__((unused))
+conn_fetch_destroy(sdb_object_t *obj)
+{
+       if (CONN_FETCH(obj)->host)
+               free(CONN_FETCH(obj)->host);
+       if (CONN_FETCH(obj)->name)
+               free(CONN_FETCH(obj)->name);
+       sdb_object_deref(SDB_OBJ(CONN_FETCH(obj)->filter));
+} /* conn_fetch_destroy */
+
 static void __attribute__((unused))
 conn_lookup_destroy(sdb_object_t *obj)
 {
-       if (CONN_LOOKUP(obj)->matcher)
-               sdb_object_deref(SDB_OBJ(CONN_LOOKUP(obj)->matcher));
+       sdb_object_deref(SDB_OBJ(CONN_LOOKUP(obj)->matcher));
+       sdb_object_deref(SDB_OBJ(CONN_LOOKUP(obj)->filter));
 } /* conn_lookup_destroy */
 
+static void __attribute__((unused))
+conn_ts_destroy(sdb_object_t *obj)
+{
+       if (CONN_TS(obj)->hostname)
+               free(CONN_TS(obj)->hostname);
+       if (CONN_TS(obj)->metric)
+               free(CONN_TS(obj)->metric);
+} /* conn_ts_destroy */
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif