Use a fixed time-interval for values rather than transfering the time for each value.
[collection4.git] / src / data_provider.h
index 6dbcd1e..08cff9a 100644 (file)
@@ -39,15 +39,17 @@ struct dp_data_point_s
 typedef struct dp_data_point_s dp_data_point_t;
 
 /* Callback passed to the "get_idents" function. */
-typedef int (*dp_get_idents_callback) (const graph_ident_t *, void *);
+typedef int (*dp_get_idents_callback) (graph_ident_t *, void *);
 
 /* Callback passed to the "get_ident_ds_names" function. */
-typedef int (*dp_list_get_ident_ds_names_callback) (const graph_ident_t *,
+typedef int (*dp_list_get_ident_ds_names_callback) (graph_ident_t *,
     const char *ds_name, void *);
 
 /* Callback passed to the "get_ident_data" function. */
 typedef int (*dp_get_ident_data_callback) (graph_ident_t *, const char *ds_name,
-    const dp_data_point_t *, void *);
+    dp_time_t first_value_time, dp_time_t interval,
+    size_t data_points_num, double *data_points,
+    void *);
 
 struct data_provider_s
 {
@@ -66,5 +68,14 @@ typedef struct data_provider_s data_provider_t;
 
 int data_provider_config (const oconfig_item_t *ci);
 
+int data_provider_register (const char *name, data_provider_t *p);
+int data_provider_get_idents (dp_get_idents_callback callback, void *user_data);
+int data_provider_get_ident_ds_names (graph_ident_t *ident,
+    dp_list_get_ident_ds_names_callback callback, void *user_data);
+int data_provider_get_ident_data (graph_ident_t *ident,
+    const char *ds_name,
+    dp_time_t begin, dp_time_t end,
+    dp_get_ident_data_callback callback, void *user_data);
+
 #endif /* DATA_PROVIDER_H */
 /* vim: set sw=2 sts=2 et fdm=marker : */