/** * Header file for volkszaehler.org API calls * * @author Steffen Vogel * @copyright Copyright (c) 2011, The volkszaehler.org project * @package vzlogger * @license http://opensource.org/licenses/gpl-license.php GNU Public License */ /* * This file is part of volkzaehler.org * * volkzaehler.org is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * volkzaehler.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with volkszaehler.org. If not, see . */ #ifndef _API_H_ #define _API_H_ #include #include #include #include #include "buffer.h" #include "channel.h" typedef struct { char *data; size_t size; } CURLresponse; typedef struct { CURL *curl; struct curl_slist *headers; } api_handle_t; int api_init(channel_t *ch, api_handle_t *api); void api_free(api_handle_t *api); /** * Reformat CURLs debugging output */ int curl_custom_debug_callback(CURL *curl, curl_infotype type, char *data, size_t size, void *custom); size_t curl_custom_write_callback(void *ptr, size_t size, size_t nmemb, void *data); /** * Create JSON object of tuples * * @param buf the buffer our readings are stored in (required for mutex) * @param first the first tuple of our linked list which should be encoded * @param last the last tuple of our linked list which should be encoded * @return the json_object (has to be free'd) */ json_object * api_json_tuples(buffer_t *buf, reading_t *first, reading_t *last); /** * Parses JSON encoded exception and stores describtion in err */ int api_parse_exception(CURLresponse response, char *err, size_t n); #endif /* _API_H_ */