2 +--------------------------------------------------------------------+
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 +--------------------------------------------------------------------+
15 #ifndef PHP_HTTP_MESSAGE_OBJECT_H
16 #define PHP_HTTP_MESSAGE_OBJECT_H
19 typedef struct _http_message_object_t
{
21 http_message
*message
;
22 zend_object_value parent
;
24 } http_message_object
;
26 extern zend_class_entry
*http_message_object_ce
;
27 extern zend_function_entry http_message_object_fe
[];
29 extern PHP_MINIT_FUNCTION(http_message_object
);
30 extern PHP_MSHUTDOWN_FUNCTION(http_message_object
);
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
);
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
);
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
);
48 #define HTTP_MSG_CHECK_OBJ(obj, dofail) \
49 if (!(obj)->message) { \
50 http_error(E_WARNING, HTTP_E_MSG, "HttpMessage is empty"); \
53 #define HTTP_MSG_CHECK_STD() HTTP_MSG_CHECK_OBJ(obj, RETURN_FALSE)
55 #define HTTP_MSG_INIT_OBJ(obj) \
56 if (!(obj)->message) { \
57 (obj)->message = http_message_new(); \
59 #define HTTP_MSG_INIT_STD() HTTP_MSG_INIT_OBJ(obj)
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
);
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
);
97 PHP_METHOD(HttpMessage
, factory
);
98 PHP_METHOD(HttpMessage
, fromEnv
);
100 PHP_METHOD(HttpMessage
, detach
);
101 PHP_METHOD(HttpMessage
, prepend
);
102 PHP_METHOD(HttpMessage
, reverse
);
112 * vim600: noet sw=4 ts=4 fdm=marker
113 * vim<600: noet sw=4 ts=4