PingAccess Agent SDK for C
paa-http-server-facade.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 
31 #ifndef _PAA_SDK_HTTP_SERVER_FACADE_H_
32 #define _PAA_SDK_HTTP_SERVER_FACADE_H_ 1
33 
34 #include <stdlib.h>
35 
36 #include "apr.h"
37 #include "apr_pools.h"
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
48 typedef struct paa_agent_response_struct paa_agent_response;
49 
54 
68 typedef size_t (*paa_client_request_read_cb)(unsigned char *dst,
69  size_t size,
70  void *userdata);
71 
83 typedef apr_status_t (*paa_header_cb)(const char *name,
84  const char *value,
85  void *userdata);
86 
93 {
95  void *impl;
96 
101  const char *(*get_method)(const paa_client_request *req);
102 
114  const char *(*get_normalized_uri)(const paa_client_request *req);
115 
122  const char *(*get_raw_uri)(const paa_client_request *req);
123 
129  const char *(*get_remote_ip)(const paa_client_request *req);
130 
136  const char *(*get_scheme)(const paa_client_request *req);
137 
147  const char *(*get_scope)(const paa_client_request *req);
148 
180  apr_status_t (*enumerate_headers)(const paa_client_request *req,
181  paa_header_cb cb,
182  void *userdata);
183 
223  apr_status_t (*get_header_values)(const paa_client_request *req,
224  const char *name,
225  paa_header_cb cb,
226  void *userdata);
227 
269  apr_status_t (*set_header)(const paa_client_request *req,
270  const char *name,
271  const char *value);
272 
296  apr_status_t (*add_header)(const paa_client_request *req,
297  const char *name,
298  const char *value);
299 
309  apr_status_t (*remove_header)(const paa_client_request *req,
310  const char *name);
311 
327  apr_status_t (*set_req_var)(const paa_client_request *req,
328  const char *name,
329  const char *value);
330 
345  apr_status_t (*remove_req_var)(const paa_client_request *req,
346  const char *name);
347 
359  apr_status_t (*set_user)(const paa_client_request *req, const char *user);
360 
371  const char *(*get_user)(const paa_client_request *req);
372 
373  // The following functions only need to be implemented when
374  // the paa_client_request is used in conjunction with paa_http_client.
375 
384 
392  void *(*get_read_data)(const paa_client_request *req);
393 };
394 
399 
409 typedef size_t (*paa_client_response_write_cb)(const unsigned char *src,
410  size_t size,
411  void *userdata);
412 
419 {
421  void *impl;
422 
428  int (*get_status)(const paa_client_response *resp);
429 
457  apr_status_t (*set_header)(const paa_client_response *resp,
458  const char *name,
459  const char *value);
460 
483  apr_status_t (*add_header)(const paa_client_response *resp,
484  const char *name,
485  const char *value);
486 
496  apr_status_t (*remove_header)(const paa_client_response *resp,
497  const char *name);
498 
530  apr_status_t (*enumerate_headers)(const paa_client_response *resp,
531  paa_header_cb cb,
532  void *userdata);
533 
534 
535  // The following functions only need to be implemented when
536  // the paa_client_response is used in conjunction with paa_http_client.
537 
551  apr_status_t (*replacing)(const paa_client_response *resp);
552 
565  apr_status_t (*set_status)(const paa_client_response *resp,
566  int status,
567  const char *reason);
568 
576  paa_client_response_write_cb (*get_write_cb)(const paa_client_response *resp);
577 
585  void *(*get_write_data)(const paa_client_response *resp);
586 
587 };
588 
589 #ifdef __cplusplus
590 } /* C */
591 #endif
592 
593 #endif /* _PAA_SDK_HTTP_SERVER_FACADE_H_ */
apr_status_t(* set_req_var)(const paa_client_request *req, const char *name, const char *value)
Definition: paa-http-server-facade.h:327
apr_status_t(* enumerate_headers)(const paa_client_request *req, paa_header_cb cb, void *userdata)
Definition: paa-http-server-facade.h:180
apr_status_t(* remove_req_var)(const paa_client_request *req, const char *name)
Definition: paa-http-server-facade.h:345
Definition: paa-http-server-facade.h:92
apr_status_t(* paa_header_cb)(const char *name, const char *value, void *userdata)
Definition: paa-http-server-facade.h:83
void * impl
Definition: paa-http-server-facade.h:95
size_t(* paa_client_request_read_cb)(unsigned char *dst, size_t size, void *userdata)
Definition: paa-http-server-facade.h:68
apr_status_t(* remove_header)(const paa_client_request *req, const char *name)
Definition: paa-http-server-facade.h:309
Definition: paa-http-server-facade.h:418
size_t(* paa_client_response_write_cb)(const unsigned char *src, size_t size, void *userdata)
Definition: paa-http-server-facade.h:409
apr_status_t(* set_header)(const paa_client_request *req, const char *name, const char *value)
Definition: paa-http-server-facade.h:269
apr_status_t(* add_header)(const paa_client_request *req, const char *name, const char *value)
Definition: paa-http-server-facade.h:296
apr_status_t(* get_header_values)(const paa_client_request *req, const char *name, paa_header_cb cb, void *userdata)
Definition: paa-http-server-facade.h:223
void * impl
Definition: paa-http-server-facade.h:421
struct paa_agent_response_struct paa_agent_response
Definition: paa-http-server-facade.h:48
paa_client_request_read_cb(* get_read_cb)(const paa_client_request *req)
Definition: paa-http-server-facade.h:383
apr_status_t(* set_user)(const paa_client_request *req, const char *user)
Definition: paa-http-server-facade.h:359