PingAccess Agent SDK for C
 All Classes Files Functions Variables Typedefs Enumerations Macros Pages
paa-http-client.h
Go to the documentation of this file.
1 /*****************************************************
2  * Copyright (C) 2015 Ping Identity Corporation
3  * All rights reserved.
4  *
5  * The contents of this file are the property of Ping Identity Corporation.
6  * You may not copy or use this file, in either source code or executable
7  * form, except in compliance with terms set by Ping Identity Corporation.
8  * For further information please contact:
9  *
10  * Ping Identity Corporation
11  * 1001 17th St Suite 100
12  * Denver, CO 80202
13  * 303.468.2900
14  * http://www.pingidentity.com
15  *
16  ****************************************************/
17 
29 #ifndef _PAA_SDK_HTTP_CLIENT_H_
30 #define _PAA_SDK_HTTP_CLIENT_H_ 1
31 
32 #include <stdlib.h>
33 
34 #include "apr.h"
35 #include "apr_pools.h"
36 
37 #include "paa-http-server-facade.h"
38 #include "paa-util.h"
39 
41 #define APR_PAA_HTTP_ERROR (APR_PAA_HTTP_START + 0)
42 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46 
49 
55 {
57  void *impl;
58 
69  apr_status_t (*add_request_header)(const paa_http_request *req,
70  const char *name,
71  const char *value);
72 
82  apr_status_t (*set_request_uri)(const paa_http_request *req,
83  const char *uri);
84 
94  apr_status_t (*set_request_method)(const paa_http_request *req,
95  const char *method);
96 
109  int include_body);
110 };
111 
120 typedef void (*paa_resp_status_cb)(unsigned int status,
121  const char *reason,
122  void *userdata);
123 
133 typedef void (*paa_resp_header_cb)(const char *name,
134  const char *value,
135  void *userdata);
136 
150 typedef size_t (*paa_resp_body_cb)(const unsigned char *src,
151  size_t size,
152  void *userdata);
153 
156 
162 {
164  void *impl;
165 
178  apr_status_t (*process_status)(const paa_http_response *response,
180  void *userdata);
181 
193  apr_status_t (*process_headers)(const paa_http_response *response,
195  void *userdata);
196 
207  apr_status_t (*remove_header)(const paa_http_response *response,
208  const char *name);
209 
227  apr_status_t (*register_body_callback)(const paa_http_response *response,
228  paa_resp_body_cb cb,
229  void *userdata);
230 };
231 
234 
240 {
242  void *impl;
243 
257  apr_status_t (*create_request_handle)(const paa_http_context *context,
258  const paa_http_request **request);
259 
266  void (*set_resp_pool)(const paa_http_context *context,
267  apr_pool_t *resp_pool);
268 
275  void (*set_resp_status_cb)(const paa_http_context *context,
276  paa_resp_status_cb cb);
277 
284  void (*set_resp_header_cb)(const paa_http_context *context,
285  paa_resp_header_cb cb);
286 
297  void (*set_resp_body_cb)(const paa_http_context *context,
298  paa_resp_body_cb cb);
299 
306  void (*set_resp_userdata)(const paa_http_context *context,
307  void *userdata);
308 
329  apr_status_t (*send_request)(const paa_http_context *context,
330  const paa_client_request *client_request);
331 };
332 
335 
340 {
342  void *impl;
343 
357  apr_status_t (*create_context)(const paa_http_client *client,
358  apr_pool_t *pool,
359  const paa_http_context **context);
360 };
361 
362 #ifdef __cplusplus
363 } /* C */
364 #endif
365 
366 #endif /* _PAA_SDK_HTTP_CLIENT_H_ */
apr_status_t(* set_include_client_request_body)(const paa_http_request *req, int include_body)
Definition: paa-http-client.h:108
Definition: paa-http-client.h:339
apr_status_t(* process_headers)(const paa_http_response *response, paa_resp_header_cb cb, void *userdata)
Definition: paa-http-client.h:193
void * impl
Definition: paa-http-client.h:164
Definition: paa-http-client.h:161
size_t(* paa_resp_body_cb)(const unsigned char *src, size_t size, void *userdata)
Definition: paa-http-client.h:150
void(* set_resp_pool)(const paa_http_context *context, apr_pool_t *resp_pool)
Definition: paa-http-client.h:266
void(* paa_resp_header_cb)(const char *name, const char *value, void *userdata)
Definition: paa-http-client.h:133
void * impl
Definition: paa-http-client.h:342
void * impl
Definition: paa-http-client.h:57
apr_status_t(* add_request_header)(const paa_http_request *req, const char *name, const char *value)
Definition: paa-http-client.h:69
Definition: paa-http-server-facade.h:92
void(* set_resp_header_cb)(const paa_http_context *context, paa_resp_header_cb cb)
Definition: paa-http-client.h:284
apr_status_t(* register_body_callback)(const paa_http_response *response, paa_resp_body_cb cb, void *userdata)
Definition: paa-http-client.h:227
void(* paa_resp_status_cb)(unsigned int status, const char *reason, void *userdata)
Definition: paa-http-client.h:120
apr_status_t(* set_request_uri)(const paa_http_request *req, const char *uri)
Definition: paa-http-client.h:82
apr_status_t(* create_context)(const paa_http_client *client, apr_pool_t *pool, const paa_http_context **context)
Definition: paa-http-client.h:357
apr_status_t(* create_request_handle)(const paa_http_context *context, const paa_http_request **request)
Definition: paa-http-client.h:257
apr_status_t(* send_request)(const paa_http_context *context, const paa_client_request *client_request)
Definition: paa-http-client.h:329
void * impl
Definition: paa-http-client.h:242
void(* set_resp_body_cb)(const paa_http_context *context, paa_resp_body_cb cb)
Definition: paa-http-client.h:297
apr_status_t(* process_status)(const paa_http_response *response, paa_resp_status_cb cb, void *userdata)
Definition: paa-http-client.h:178
Definition: paa-http-client.h:239
apr_status_t(* remove_header)(const paa_http_response *response, const char *name)
Definition: paa-http-client.h:207
void(* set_resp_status_cb)(const paa_http_context *context, paa_resp_status_cb cb)
Definition: paa-http-client.h:275
void(* set_resp_userdata)(const paa_http_context *context, void *userdata)
Definition: paa-http-client.h:306
apr_status_t(* set_request_method)(const paa_http_request *req, const char *method)
Definition: paa-http-client.h:94
Definition: paa-http-client.h:54