X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Finclude%2Fcore%2Fstore.h;h=6c833ec6e2162673dc012e63f28947d4a201ecb7;hb=9a0ead9da5ec1bcebf4d8ef236a7ed661729aaa3;hp=7cdfbf0576671a2e119f2fa78d28201deb77680d;hpb=8d86f8d17b71234e55633fbbdbcaee6f3d365d36;p=sysdb.git diff --git a/src/include/core/store.h b/src/include/core/store.h index 7cdfbf0..6c833ec 100644 --- a/src/include/core/store.h +++ b/src/include/core/store.h @@ -44,17 +44,15 @@ extern const sdb_type_t sdb_attribute_type; extern const sdb_type_t sdb_service_type; typedef struct { - sdb_object_t parent; - + sdb_object_t super; sdb_time_t last_update; - char *name; } sdb_store_obj_t; -#define SDB_STORE_OBJ_INIT(t) { SDB_OBJECT_TYPED_INIT(t), 0, NULL } +#define SDB_STORE_OBJ_INIT(t) { SDB_OBJECT_TYPED_INIT(t), 0 } #define SDB_STORE_OBJ(obj) ((sdb_store_obj_t *)(obj)) #define SDB_CONST_STORE_OBJ(obj) ((const sdb_store_obj_t *)(obj)) typedef struct { - sdb_store_obj_t parent; + sdb_store_obj_t super; char *hostname; } sdb_service_t; @@ -63,7 +61,7 @@ typedef struct { #define SDB_CONST_SVC(obj) ((const sdb_service_t *)(obj)) typedef struct { - sdb_store_obj_t parent; + sdb_store_obj_t super; char *attr_value; char *hostname; @@ -73,7 +71,7 @@ typedef struct { #define SDB_CONST_ATTR(obj) ((const sdb_attribute_t *)(obj)) typedef struct { - sdb_store_obj_t parent; + sdb_store_obj_t super; sdb_llist_t *attributes; sdb_llist_t *services; @@ -84,19 +82,15 @@ typedef struct { /* shortcuts for accessing the sdb_store_obj_t attributes of inheriting * objects */ -#define _last_update parent.last_update -#define _name parent.name - -sdb_host_t * -sdb_host_create(const char *name); +#define _last_update super.last_update /* * sdb_store_host: - * Add/update a host in the store. If the host, identified by its name, - * already exists, it will be updated according to the specified 'host' - * object. Else, a new entry will be created in the store. Any memory required - * for storing the entry will be allocated an managed by the store itself. The - * specified host-object will not be referenced or further accessed. + * Add/update a host in the store. If the host, identified by its + * canonicalized name, already exists, it will be updated according to the + * specified name and timestamp. Else, a new entry will be created in the + * store. Any memory required for storing the entry will be allocated an + * managed by the store itself. * * Returns: * - 0 on success @@ -105,14 +99,10 @@ sdb_host_create(const char *name); * - a negative value on error */ int -sdb_store_host(const sdb_host_t *host); - -const sdb_host_t * -sdb_store_get_host(const char *name); +sdb_store_host(const char *name, sdb_time_t last_update); -sdb_attribute_t * -sdb_attribute_create(const char *hostname, - const char *name, const char *value); +_Bool +sdb_store_has_host(const char *name); /* * sdb_store_attribute: @@ -133,9 +123,6 @@ sdb_attribute_create(const char *hostname, int sdb_store_attribute(const sdb_attribute_t *attr); -sdb_service_t * -sdb_service_create(const char *hostname, const char *name); - /* * sdb_store_service: * Add/update a store in the store. If the service, identified by its name, @@ -155,9 +142,6 @@ sdb_service_create(const char *hostname, const char *name); int sdb_store_service(const sdb_service_t *svc); -const sdb_service_t * -sdb_store_get_service(const sdb_host_t *host, const char *name); - int sdb_store_dump(FILE *fh);