X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_db_query.h;h=b6f4cea00d6351c8c0edcf97ab44d0a45cfc7e86;hb=204cf4f8f68cadeac474a75584f27b7339aca4c4;hp=0551310573dfe608c45d5a67efea8d221b96fd54;hpb=99b55f4481ba5b8f0a8558abf7e8837387ea0629;p=collectd.git diff --git a/src/utils_db_query.h b/src/utils_db_query.h index 05513105..b6f4cea0 100644 --- a/src/utils_db_query.h +++ b/src/utils_db_query.h @@ -30,6 +30,9 @@ struct udb_query_s; typedef struct udb_query_s udb_query_t; +struct udb_query_preparation_area_s; +typedef struct udb_query_preparation_area_s udb_query_preparation_area_t; + typedef int (*udb_query_create_callback_t) (udb_query_t *q, oconfig_item_t *ci); @@ -38,7 +41,7 @@ typedef int (*udb_query_create_callback_t) (udb_query_t *q, */ int udb_query_create (udb_query_t ***ret_query_list, size_t *ret_query_list_len, oconfig_item_t *ci, - udb_query_create_callback_t cb, int legacy_mode); + udb_query_create_callback_t cb); void udb_query_free (udb_query_t **query_list, size_t query_list_len); int udb_query_pick_from_list_by_name (const char *name, @@ -54,13 +57,27 @@ const char *udb_query_get_statement (udb_query_t *q); void udb_query_set_user_data (udb_query_t *q, void *user_data); void *udb_query_get_user_data (udb_query_t *q); +/* + * udb_query_check_version + * + * Returns 0 if the query is NOT suitable for `version' and >0 if the + * query IS suitable. + */ int udb_query_check_version (udb_query_t *q, unsigned int version); -int udb_query_prepare_result (udb_query_t *q, +int udb_query_prepare_result (udb_query_t const *q, + udb_query_preparation_area_t *prep_area, const char *host, const char *plugin, const char *db_name, - char **column_names, size_t column_num); -int udb_query_handle_result (udb_query_t *q, char **column_values); -void udb_query_finish_result (udb_query_t *q); + char **column_names, size_t column_num, cdtime_t interval); +int udb_query_handle_result (udb_query_t const *q, + udb_query_preparation_area_t *prep_area, char **column_values); +void udb_query_finish_result (udb_query_t const *q, + udb_query_preparation_area_t *prep_area); + +udb_query_preparation_area_t * +udb_query_allocate_preparation_area (udb_query_t *q); +void +udb_query_delete_preparation_area (udb_query_preparation_area_t *q_area); #endif /* UTILS_DB_QUERY_H */ /* vim: set sw=2 sts=2 et : */