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