- ws
[m6w6/ext-http] / php_http_info_api.h
1 /*
2 +----------------------------------------------------------------------+
3 | PECL :: http |
4 +----------------------------------------------------------------------+
5 | This source file is subject to version 3.0 of the PHP license, that |
6 | is bundled with this package in the file LICENSE, and is available |
7 | through the world-wide-web at http://www.php.net/license/3_0.txt. |
8 | If you did not receive a copy of the PHP license and are unable to |
9 | obtain it through the world-wide-web, please send a note to |
10 | license@php.net so we can mail you a copy immediately. |
11 +----------------------------------------------------------------------+
12 | Copyright (c) 2004-2005 Michael Wallner <mike@php.net> |
13 +----------------------------------------------------------------------+
14 */
15
16 /* $Id$ */
17
18 #ifndef PHP_HTTP_INFO_API_H
19 #define PHP_HTTP_INFO_API_H
20
21 #define IS_HTTP_REQUEST 1
22 #define IS_HTTP_RESPONSE 2
23
24 #define HTTP_INFO(ptr) (ptr)->http.info
25
26 typedef struct {
27 char *method;
28 char *URI;
29 } http_request_info;
30
31 typedef struct {
32 int code;
33 char *status;
34 } http_response_info;
35
36 typedef union {
37 http_request_info request;
38 http_response_info response;
39 } http_info_t;
40
41 struct http_info {
42 http_info_t info;
43 double version;
44 };
45
46 typedef struct {
47 struct http_info http;
48 int type;
49 } http_info;
50
51 typedef void (*http_info_callback)(void **callback_data, HashTable **headers, http_info *info TSRMLS_DC);
52
53 #define http_info_default_callback _http_info_default_callback
54 PHP_HTTP_API void _http_info_default_callback(void **nothing, HashTable **headers, http_info *info TSRMLS_DC);
55 #define http_info_dtor _http_info_dtor
56 PHP_HTTP_API void _http_info_dtor(http_info *info);
57 #define http_info_parse(p, i) _http_info_parse_ex((p), (i), 1 TSRMLS_CC)
58 #define http_info_parse_ex(p, i, s) _http_info_parse_ex((p), (i), (s) TSRMLS_CC)
59 PHP_HTTP_API STATUS _http_info_parse_ex(const char *pre_header, http_info *info , zend_bool silent TSRMLS_DC);
60
61 #endif
62
63 /*
64 * Local variables:
65 * tab-width: 4
66 * c-basic-offset: 4
67 * End:
68 * vim600: noet sw=4 ts=4 fdm=marker
69 * vim<600: noet sw=4 ts=4
70 */
71