- clone() support for HttpRequest
[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-2005, 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 #include "php_http_message_api.h"
20
21 typedef struct {
22 zend_object zo;
23 http_message *message;
24 zend_object_value parent;
25 } http_message_object;
26
27 extern zend_class_entry *http_message_object_ce;
28 extern zend_function_entry http_message_object_fe[];
29
30 extern PHP_MINIT_FUNCTION(http_message_object);
31
32 #define http_message_object_new(ce) _http_message_object_new((ce) TSRMLS_CC)
33 extern zend_object_value _http_message_object_new(zend_class_entry *ce TSRMLS_DC);
34 #define http_message_object_new_ex(ce, msg, ptr) _http_message_object_new_ex((ce), (msg), (ptr) TSRMLS_CC)
35 extern zend_object_value _http_message_object_new_ex(zend_class_entry *ce, http_message *msg, http_message_object **ptr TSRMLS_DC);
36 #define http_message_object_clone(zobj) _http_message_object_clone_obj(zobj TSRMLS_CC)
37 extern zend_object_value _http_message_object_clone_obj(zval *object TSRMLS_DC);
38 #define http_message_object_free(o) _http_message_object_free((o) TSRMLS_CC)
39 extern void _http_message_object_free(zend_object *object TSRMLS_DC);
40
41 #define HTTP_MSG_PROPHASH_TYPE 276192743LU
42 #define HTTP_MSG_PROPHASH_HTTP_VERSION 1138628683LU
43 #define HTTP_MSG_PROPHASH_BODY 254474387LU
44 #define HTTP_MSG_PROPHASH_HEADERS 3199929089LU
45 #define HTTP_MSG_PROPHASH_PARENT_MESSAGE 2105714836LU
46 #define HTTP_MSG_PROPHASH_REQUEST_METHOD 1669022159LU
47 #define HTTP_MSG_PROPHASH_REQUEST_URI 3208695486LU
48 #define HTTP_MSG_PROPHASH_RESPONSE_STATUS 3857097400LU
49 #define HTTP_MSG_PROPHASH_RESPONSE_CODE 1305615119LU
50
51 #define HTTP_MSG_CHECK_OBJ(obj, dofail) \
52 if (!(obj)->message) { \
53 http_error(E_WARNING, HTTP_E_MSG, "HttpMessage is empty"); \
54 dofail; \
55 }
56 #define HTTP_MSG_CHECK_STD() HTTP_MSG_CHECK_OBJ(obj, RETURN_FALSE)
57
58 #define HTTP_MSG_INIT_OBJ(obj) \
59 if (!(obj)->message) { \
60 (obj)->message = http_message_new(); \
61 }
62 #define HTTP_MSG_INIT_STD() HTTP_MSG_INIT_OBJ(obj)
63
64 PHP_METHOD(HttpMessage, __construct);
65 PHP_METHOD(HttpMessage, getBody);
66 PHP_METHOD(HttpMessage, setBody);
67 PHP_METHOD(HttpMessage, getHeaders);
68 PHP_METHOD(HttpMessage, setHeaders);
69 PHP_METHOD(HttpMessage, addHeaders);
70 PHP_METHOD(HttpMessage, getType);
71 PHP_METHOD(HttpMessage, setType);
72 PHP_METHOD(HttpMessage, getResponseCode);
73 PHP_METHOD(HttpMessage, setResponseCode);
74 PHP_METHOD(HttpMessage, getRequestMethod);
75 PHP_METHOD(HttpMessage, setRequestMethod);
76 PHP_METHOD(HttpMessage, getRequestUri);
77 PHP_METHOD(HttpMessage, setRequestUri);
78 PHP_METHOD(HttpMessage, getHttpVersion);
79 PHP_METHOD(HttpMessage, setHttpVersion);
80 PHP_METHOD(HttpMessage, getParentMessage);
81 PHP_METHOD(HttpMessage, send);
82 PHP_METHOD(HttpMessage, toString);
83
84 PHP_METHOD(HttpMessage, fromString);
85
86 #endif
87 #endif
88
89 /*
90 * Local variables:
91 * tab-width: 4
92 * c-basic-offset: 4
93 * End:
94 * vim600: noet sw=4 ts=4 fdm=marker
95 * vim<600: noet sw=4 ts=4
96 */
97