Code

store: Introduced service attributes.
[sysdb.git] / src / include / core / store.h
index 20656b37bdb8dbb0272db666d56dacf20fbf7583..1d64c4b7bee0a0f2d3944272521f3c74a85bc472 100644 (file)
@@ -123,7 +123,7 @@ sdb_store_attribute(const char *hostname,
 
 /*
  * sdb_store_service:
- * Add/update a store in the store. If the service, identified by its name,
+ * Add/update a service in the store. If the service, identified by its name,
  * already exists for the specified host, it will be updated according to the
  * specified 'service' object. If the referenced host does not exist, an error
  * will be reported. Else, a new entry will be created in the store. Any
@@ -141,6 +141,24 @@ int
 sdb_store_service(const char *hostname, const char *name,
                sdb_time_t last_update);
 
+/*
+ * sdb_store_service_attr:
+ * Add/update a service's attribute in the store. If the attribute, identified
+ * by its key, already exists for the specified service, it will be updated to
+ * the specified value. If the references service (for the specified host)
+ * does not exist, an error will be reported. Any memory required for storing
+ * the entry will be allocated and managed by the store itself.
+ *
+ * Returns:
+ *  - 0 on success
+ *  - a positive value if the new entry is older than the currently stored
+ *    entry (in this case, no update will happen)
+ *  - a negative value on error
+ */
+int
+sdb_store_service_attr(const char *hostname, const char *service,
+               const char *key, const sdb_data_t *value, sdb_time_t last_update);
+
 /*
  * Conditionals may be used to lookup hosts from the store based on a
  * conditional expression.