Code

store: Added sdb_store_get_field().
[sysdb.git] / src / include / core / store.h
index 308523a4476a1b861ad134e43815d7372088b036..533f4080ec17f049051f19a04b97111d226cfc33 100644 (file)
@@ -173,6 +173,21 @@ int
 sdb_store_service_attr(const char *hostname, const char *service,
                const char *key, const sdb_data_t *value, sdb_time_t last_update);
 
+/*
+ * sdb_store_get_field:
+ * Get the value of a stored object's queryable field. The caller is
+ * responsible for freeing any dynamically allocated memory possibly stored in
+ * the returned value.
+ *
+ * Note: Retrieving the backend this way is not currently supported.
+ *
+ * Returns:
+ *  - 0 on success
+ *  - a negative value else
+ */
+int
+sdb_store_get_field(sdb_store_obj_t *obj, int field, sdb_data_t *res);
+
 /*
  * Expressions specify arithmetic expressions.
  *
@@ -317,6 +332,19 @@ sdb_store_matcher_t *
 sdb_store_matcher_parse_cmp(const char *obj_type, const char *attr,
                const char *op, sdb_store_expr_t *expr);
 
+/*
+ * sdb_store_matcher_parse_field_cmp:
+ * Parse a simple compare expression for queryable object fields (<field> <op>
+ * <expression>).
+ *
+ * Returns:
+ *  - a matcher object on success
+ *  - NULL else
+ */
+sdb_store_matcher_t *
+sdb_store_matcher_parse_field_cmp(const char *name, const char *op,
+               sdb_store_expr_t *expr);
+
 /*
  * sdb_store_dis_matcher:
  * Creates a matcher matching the disjunction (logical OR) of two matchers.