00001 #ifndef MICROFEEDHTTP_H_ 00002 #define MICROFEEDHTTP_H_ 00003 00004 #include <time.h> 00005 #include <microfeed-provider/microfeedjson.h> 00006 00019 typedef struct _MicrofeedHttp MicrofeedHttp; 00020 00021 typedef int (*MicrofeedHttpOAuthAuthorizeCallback)(MicrofeedHttp* http, const char* url, void* user_data); 00022 typedef void (*MicrofeedHttpOAuthAccessCallback)(MicrofeedHttp* http, const char* access_token, const char* access_token_secret, void* user_data); 00023 00024 typedef enum _MicrofeedOAuthSignatureMethod { 00025 MICROFEED_HTTP_OAUTH_SIGNATURE_METHOD_HMAC_SHA1 00026 } MicrofeedHttpOAuthSignatureMethod ; 00027 00028 void microfeed_http_init(int multithreaded); 00029 void microfeed_http_cleanup(); 00030 MicrofeedHttp* microfeed_http_new(); 00031 void microfeed_http_free(MicrofeedHttp* http); 00032 00033 void microfeed_http_free_string(MicrofeedHttp* http, char* ptr); 00034 const void* microfeed_http_get_data(MicrofeedHttp* http, const char* url, size_t* size_return); 00035 MicrofeedJson* microfeed_http_get_json(MicrofeedHttp* http, const char* url); 00036 time_t microfeed_get_reply_start_time(MicrofeedHttp* http); 00037 time_t microfeed_http_get_server_time(MicrofeedHttp* http); 00038 char* microfeed_http_post_data(MicrofeedHttp* http, const char* url, size_t* len, const char* post_data); 00039 time_t microfeed_http_parse_date(MicrofeedHttp* http, const char* datestring); 00040 MicrofeedJson* microfeed_http_post_json(MicrofeedHttp* http, const char* url, const char* post_data); 00041 int microfeed_http_set_cookie_file(MicrofeedHttp* http, const char* filename); 00042 int microfeed_http_set_basic_authentication(MicrofeedHttp* http, const char* userpass); 00043 int microfeed_http_set_oauth_authentication(MicrofeedHttp* http, const char* request_token_url, const char* user_authorization_url, const char* access_token_url, const char* consumer_key, const char* consumer_secret, MicrofeedHttpOAuthAuthorizeCallback authorize_callback, MicrofeedHttpOAuthAccessCallback access_callback, void* user_data); 00044 void microfeed_http_unset_oauth_authentication(MicrofeedHttp* http); 00045 void microfeed_http_set_oauth_access_token(MicrofeedHttp* http, const char* access_token, const char* access_token_secret); 00046 void microfeed_http_set_oauth_signature_method(MicrofeedHttp* http, MicrofeedHttpOAuthSignatureMethod signature_method); 00047 00053 #endif