00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MICROFEEDHTTP_H_
00020 #define MICROFEEDHTTP_H_
00021
00022 #include <time.h>
00023 #include <microfeed-provider/microfeedjson.h>
00024
00037 typedef struct _MicrofeedHttp MicrofeedHttp;
00038
00039 typedef int (*MicrofeedHttpOAuthAuthorizeCallback)(MicrofeedHttp* http, const char* url, void* user_data);
00040 typedef void (*MicrofeedHttpOAuthAccessCallback)(MicrofeedHttp* http, const char* access_token, const char* access_token_secret, void* user_data);
00041
00042 typedef enum _MicrofeedOAuthSignatureMethod {
00043 MICROFEED_HTTP_OAUTH_SIGNATURE_METHOD_HMAC_SHA1
00044 } MicrofeedHttpOAuthSignatureMethod ;
00045
00046 void microfeed_http_init(int multithreaded);
00047 void microfeed_http_cleanup();
00048 MicrofeedHttp* microfeed_http_new();
00049 void microfeed_http_free(MicrofeedHttp* http);
00050
00051 void microfeed_http_free_string(MicrofeedHttp* http, char* ptr);
00052 const void* microfeed_http_get_data(MicrofeedHttp* http, const char* url, size_t* size_return);
00053 MicrofeedJson* microfeed_http_get_json(MicrofeedHttp* http, const char* url);
00054 time_t microfeed_get_reply_start_time(MicrofeedHttp* http);
00055 time_t microfeed_http_get_server_time(MicrofeedHttp* http);
00056 char* microfeed_http_post_data(MicrofeedHttp* http, const char* url, size_t* len, const char* post_data);
00057 time_t microfeed_http_parse_date(MicrofeedHttp* http, const char* datestring);
00058 MicrofeedJson* microfeed_http_post_json(MicrofeedHttp* http, const char* url, const char* post_data);
00059 int microfeed_http_set_cookie_file(MicrofeedHttp* http, const char* filename);
00060 int microfeed_http_set_basic_authentication(MicrofeedHttp* http, const char* userpass);
00061 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);
00062 void microfeed_http_unset_oauth_authentication(MicrofeedHttp* http);
00063 void microfeed_http_set_oauth_access_token(MicrofeedHttp* http, const char* access_token, const char* access_token_secret);
00064 void microfeed_http_set_oauth_signature_method(MicrofeedHttp* http, MicrofeedHttpOAuthSignatureMethod signature_method);
00065
00071 #endif