fxed bug #17169 wrong return value of HttpMessage::getHttpVersion()
[m6w6/ext-http] / php_http_message_object.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-2010, Michael Wallner <mike@php.net> |
10 +--------------------------------------------------------------------+
11 */
12
13 /* $Id$ */
14
15 #ifndef PHP_HTTP_MESSAGE_OBJECT_H
16 #define PHP_HTTP_MESSAGE_OBJECT_H
17 #ifdef ZEND_ENGINE_2
18
19 typedef struct _http_message_object_t {
20 zend_object zo;
21 http_message *message;
22 zend_object_value parent;
23 zval *iterator;
24 } http_message_object;
25
26 extern zend_class_entry *http_message_object_ce;
27 extern zend_function_entry http_message_object_fe[];
28
29 extern PHP_MINIT_FUNCTION(http_message_object);
30 extern PHP_MSHUTDOWN_FUNCTION(http_message_object);
31
32 #define http_message_object_prepend(o, p) http_message_object_prepend_ex((o), (p), 1)
33 #define http_message_object_prepend_ex(o, p, t) _http_message_object_prepend_ex((o), (p), (t) TSRMLS_CC)
34 extern void _http_message_object_prepend_ex(zval *this_ptr, zval *prepend, zend_bool top TSRMLS_DC);
35
36 #define http_message_object_reverse(t, r) _http_message_object_reverse((t), (r) TSRMLS_CC)
37 extern void _http_message_object_reverse(zval *this_ptr, zval *return_value TSRMLS_DC);
38
39 #define http_message_object_new(ce) _http_message_object_new((ce) TSRMLS_CC)
40 extern zend_object_value _http_message_object_new(zend_class_entry *ce TSRMLS_DC);
41 #define http_message_object_new_ex(ce, msg, ptr) _http_message_object_new_ex((ce), (msg), (ptr) TSRMLS_CC)
42 extern zend_object_value _http_message_object_new_ex(zend_class_entry *ce, http_message *msg, http_message_object **ptr TSRMLS_DC);
43 #define http_message_object_clone(zobj) _http_message_object_clone_obj(zobj TSRMLS_CC)
44 extern zend_object_value _http_message_object_clone_obj(zval *object TSRMLS_DC);
45 #define http_message_object_free(o) _http_message_object_free((o) TSRMLS_CC)
46 extern void _http_message_object_free(zend_object *object TSRMLS_DC);
47
48 #define HTTP_MSG_CHECK_OBJ(obj, dofail) \
49 if (!(obj)->message) { \
50 http_error(E_WARNING, HTTP_E_MSG, "HttpMessage is empty"); \
51 dofail; \
52 }
53 #define HTTP_MSG_CHECK_STD() HTTP_MSG_CHECK_OBJ(obj, RETURN_FALSE)
54
55 #define HTTP_MSG_INIT_OBJ(obj) \
56 if (!(obj)->message) { \
57 (obj)->message = http_message_new(); \
58 }
59 #define HTTP_MSG_INIT_STD() HTTP_MSG_INIT_OBJ(obj)
60
61 PHP_METHOD(HttpMessage, __construct);
62 PHP_METHOD(HttpMessage, getBody);
63 PHP_METHOD(HttpMessage, setBody);
64 PHP_METHOD(HttpMessage, getHeader);
65 PHP_METHOD(HttpMessage, getHeaders);
66 PHP_METHOD(HttpMessage, setHeaders);
67 PHP_METHOD(HttpMessage, addHeaders);
68 PHP_METHOD(HttpMessage, getType);
69 PHP_METHOD(HttpMessage, setType);
70 PHP_METHOD(HttpMessage, getInfo);
71 PHP_METHOD(HttpMessage, setInfo);
72 PHP_METHOD(HttpMessage, getResponseCode);
73 PHP_METHOD(HttpMessage, setResponseCode);
74 PHP_METHOD(HttpMessage, getResponseStatus);
75 PHP_METHOD(HttpMessage, setResponseStatus);
76 PHP_METHOD(HttpMessage, getRequestMethod);
77 PHP_METHOD(HttpMessage, setRequestMethod);
78 PHP_METHOD(HttpMessage, getRequestUrl);
79 PHP_METHOD(HttpMessage, setRequestUrl);
80 PHP_METHOD(HttpMessage, getHttpVersion);
81 PHP_METHOD(HttpMessage, setHttpVersion);
82 PHP_METHOD(HttpMessage, guessContentType);
83 PHP_METHOD(HttpMessage, getParentMessage);
84 PHP_METHOD(HttpMessage, send);
85 PHP_METHOD(HttpMessage, toString);
86 PHP_METHOD(HttpMessage, toMessageTypeObject);
87
88 PHP_METHOD(HttpMessage, count);
89 PHP_METHOD(HttpMessage, serialize);
90 PHP_METHOD(HttpMessage, unserialize);
91 PHP_METHOD(HttpMessage, rewind);
92 PHP_METHOD(HttpMessage, valid);
93 PHP_METHOD(HttpMessage, current);
94 PHP_METHOD(HttpMessage, key);
95 PHP_METHOD(HttpMessage, next);
96
97 PHP_METHOD(HttpMessage, factory);
98 PHP_METHOD(HttpMessage, fromEnv);
99
100 PHP_METHOD(HttpMessage, detach);
101 PHP_METHOD(HttpMessage, prepend);
102 PHP_METHOD(HttpMessage, reverse);
103
104 #endif
105 #endif
106
107 /*
108 * Local variables:
109 * tab-width: 4
110 * c-basic-offset: 4
111 * End:
112 * vim600: noet sw=4 ts=4 fdm=marker
113 * vim<600: noet sw=4 ts=4
114 */
115