4fcf2be649ca4f02f0745edca508fcce28e41ba8
[m6w6/ext-http] / php_http_request_method_api.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-2006, Michael Wallner <mike@php.net> |
10 +--------------------------------------------------------------------+
11 */
12
13 /* $Id$ */
14
15 #ifndef PHP_HTTP_REQUEST_METHOD_API_H
16 #define PHP_HTTP_REQUEST_METHOD_API_H
17
18 typedef enum {
19 HTTP_NO_REQUEST_METHOD = 0,
20 /* HTTP/1.1 */
21 HTTP_GET = 1,
22 HTTP_HEAD = 2,
23 HTTP_POST = 3,
24 HTTP_PUT = 4,
25 HTTP_DELETE = 5,
26 HTTP_OPTIONS = 6,
27 HTTP_TRACE = 7,
28 HTTP_CONNECT = 8,
29 /* WebDAV - RFC 2518 */
30 HTTP_PROPFIND = 9,
31 HTTP_PROPPATCH = 10,
32 HTTP_MKCOL = 11,
33 HTTP_COPY = 12,
34 HTTP_MOVE = 13,
35 HTTP_LOCK = 14,
36 HTTP_UNLOCK = 15,
37 /* WebDAV Versioning - RFC 3253 */
38 HTTP_VERSION_CONTROL = 16,
39 HTTP_REPORT = 17,
40 HTTP_CHECKOUT = 18,
41 HTTP_CHECKIN = 19,
42 HTTP_UNCHECKOUT = 20,
43 HTTP_MKWORKSPACE = 21,
44 HTTP_UPDATE = 22,
45 HTTP_LABEL = 23,
46 HTTP_MERGE = 24,
47 HTTP_BASELINE_CONTROL = 25,
48 HTTP_MKACTIVITY = 26,
49 /* WebDAV Access Control - RFC 3744 */
50 HTTP_ACL = 27,
51 HTTP_MAX_REQUEST_METHOD = 28
52 } http_request_method;
53
54 #define HTTP_MIN_REQUEST_METHOD (HTTP_NO_REQUEST_METHOD + 1)
55 #define HTTP_CUSTOM_REQUEST_METHOD_START HTTP_MAX_REQUEST_METHOD
56
57 typedef struct {
58 char *name;
59 char *cnst;
60 } http_request_method_entry;
61
62 #define HTTP_STD_REQUEST_METHOD(m) ((m > HTTP_NO_REQUEST_METHOD) && (m < HTTP_MAX_REQUEST_METHOD))
63 #define HTTP_CUSTOM_REQUEST_METHOD(m) (m - HTTP_MAX_REQUEST_METHOD)
64
65 extern PHP_MINIT_FUNCTION(http_request_method);
66 extern PHP_RINIT_FUNCTION(http_request_method);
67 extern PHP_RSHUTDOWN_FUNCTION(http_request_method);
68
69 #define http_request_method_name(m) _http_request_method_name((m) TSRMLS_CC)
70 PHP_HTTP_API const char *_http_request_method_name(http_request_method m TSRMLS_DC);
71
72 #define http_request_method_exists(u, l, c) _http_request_method_exists((u), (l), (c) TSRMLS_CC)
73 PHP_HTTP_API int _http_request_method_exists(zend_bool by_name, http_request_method id, const char *name TSRMLS_DC);
74
75 #define http_request_method_register(m, l) _http_request_method_register((m), (l) TSRMLS_CC)
76 PHP_HTTP_API int _http_request_method_register(const char *method, int method_name_len TSRMLS_DC);
77
78 #define http_request_method_unregister(mn) _http_request_method_unregister((mn) TSRMLS_CC)
79 PHP_HTTP_API STATUS _http_request_method_unregister(int method TSRMLS_DC);
80
81 #endif
82
83 /*
84 * Local variables:
85 * tab-width: 4
86 * c-basic-offset: 4
87 * End:
88 * vim600: noet sw=4 ts=4 fdm=marker
89 * vim<600: noet sw=4 ts=4
90 */
91