Merge branch 'master' into phpng
[m6w6/ext-http] / php_http_params.h
1 /*
2 +--------------------------------------------------------------------+
3 | PECL :: http |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted provided that the conditions mentioned |
7 | in the accompanying LICENSE file are met. |
8 +--------------------------------------------------------------------+
9 | Copyright (c) 2004-2014, Michael Wallner <mike@php.net> |
10 +--------------------------------------------------------------------+
11 */
12
13 #ifndef PHP_HTTP_PARAMS_H
14 #define PHP_HTTP_PARAMS_H
15
16 typedef struct php_http_params_token {
17 char *str;
18 size_t len;
19 } php_http_params_token_t;
20
21 #define PHP_HTTP_PARAMS_RAW 0x00
22 #define PHP_HTTP_PARAMS_ESCAPED 0x01
23 #define PHP_HTTP_PARAMS_URLENCODED 0x04
24 #define PHP_HTTP_PARAMS_DIMENSION 0x08
25 #define PHP_HTTP_PARAMS_RFC5987 0x10
26 #define PHP_HTTP_PARAMS_RFC5988 0x20
27 #define PHP_HTTP_PARAMS_QUERY (PHP_HTTP_PARAMS_URLENCODED|PHP_HTTP_PARAMS_DIMENSION)
28 #define PHP_HTTP_PARAMS_DEFAULT (PHP_HTTP_PARAMS_ESCAPED|PHP_HTTP_PARAMS_RFC5987)
29
30 typedef struct php_http_params_opts {
31 php_http_params_token_t input;
32 php_http_params_token_t **param;
33 php_http_params_token_t **arg;
34 php_http_params_token_t **val;
35 zval defval;
36 unsigned flags;
37 } php_http_params_opts_t;
38
39 PHP_HTTP_API php_http_params_opts_t *php_http_params_opts_default_get(php_http_params_opts_t *opts);
40 PHP_HTTP_API HashTable *php_http_params_parse(HashTable *params, const php_http_params_opts_t *opts);
41 PHP_HTTP_API php_http_buffer_t *php_http_params_to_string(php_http_buffer_t *buf, HashTable *params, const char *pss, size_t psl, const char *ass, size_t asl, const char *vss, size_t vsl, unsigned flags);
42
43 PHP_HTTP_API php_http_params_token_t **php_http_params_separator_init(zval *zv);
44 PHP_HTTP_API void php_http_params_separator_free(php_http_params_token_t **separator);
45
46 typedef php_http_object_t php_http_params_object_t;
47
48 PHP_HTTP_API zend_class_entry *php_http_params_class_entry;
49
50 PHP_MINIT_FUNCTION(http_params);
51
52 #define php_http_params_object_new php_http_object_new
53 #define php_http_params_object_new_ex php_http_object_new_ex
54
55 #endif
56
57 /*
58 * Local variables:
59 * tab-width: 4
60 * c-basic-offset: 4
61 * End:
62 * vim600: noet sw=4 ts=4 fdm=marker
63 * vim<600: noet sw=4 ts=4
64 */
65