branch off v1 as R_1_7
[m6w6/ext-http] / php_http_message_object.h
index ba5a073daef5f39f3aa27bf32f9dc54ff2452d78..8e28de20009bd08e626cbd6846183e550261e85a 100644 (file)
@@ -1,16 +1,13 @@
 /*
-   +----------------------------------------------------------------------+
-   | PECL :: http                                                         |
-   +----------------------------------------------------------------------+
-   | This source file is subject to version 3.0 of the PHP license, that  |
-   | is bundled with this package in the file LICENSE, and is available   |
-   | through the world-wide-web at http://www.php.net/license/3_0.txt.    |
-   | If you did not receive a copy of the PHP license and are unable to   |
-   | obtain it through the world-wide-web, please send a note to          |
-   | license@php.net so we can mail you a copy immediately.               |
-   +----------------------------------------------------------------------+
-   | Copyright (c) 2004-2005 Michael Wallner <mike@php.net>               |
-   +----------------------------------------------------------------------+
+    +--------------------------------------------------------------------+
+    | PECL :: http                                                       |
+    +--------------------------------------------------------------------+
+    | Redistribution and use in source and binary forms, with or without |
+    | modification, are permitted provided that the conditions mentioned |
+    | in the accompanying LICENSE file are met.                          |
+    +--------------------------------------------------------------------+
+    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
+    +--------------------------------------------------------------------+
 */
 
 /* $Id$ */
 #define PHP_HTTP_MESSAGE_OBJECT_H
 #ifdef ZEND_ENGINE_2
 
-#include "php_http_message_api.h"
-
-typedef struct {
+typedef struct _http_message_object_t {
        zend_object zo;
        http_message *message;
-       zval _tmp_property;
+       zend_object_value parent;
+       zval *iterator;
 } http_message_object;
 
 extern zend_class_entry *http_message_object_ce;
 extern zend_function_entry http_message_object_fe[];
 
-#define http_message_object_init _http_message_object_init
-extern void _http_message_object_init(INIT_FUNC_ARGS);
-#define http_message_object_new _http_message_object_new
+extern PHP_MINIT_FUNCTION(http_message_object);
+extern PHP_MSHUTDOWN_FUNCTION(http_message_object);
+
+#define http_message_object_prepend(o, p) http_message_object_prepend_ex((o), (p), 1)
+#define http_message_object_prepend_ex(o, p, t) _http_message_object_prepend_ex((o), (p), (t) TSRMLS_CC)
+extern void _http_message_object_prepend_ex(zval *this_ptr, zval *prepend, zend_bool top TSRMLS_DC);
+
+#define http_message_object_reverse(t, r) _http_message_object_reverse((t), (r) TSRMLS_CC)
+extern void _http_message_object_reverse(zval *this_ptr, zval *return_value TSRMLS_DC);
+
+#define http_message_object_new(ce) _http_message_object_new((ce) TSRMLS_CC)
 extern zend_object_value _http_message_object_new(zend_class_entry *ce TSRMLS_DC);
-#define http_message_object_new_ex(ce, msg) _http_message_object_new_ex(ce, msg TSRMLS_CC)
-#define http_message_object_from_msg(msg) _http_message_object_new_ex(http_message_object_ce, msg TSRMLS_CC)
-extern zend_object_value _http_message_object_new_ex(zend_class_entry *ce, http_message *msg TSRMLS_DC);
-#define http_message_object_free _http_message_object_free
+#define http_message_object_new_ex(ce, msg, ptr) _http_message_object_new_ex((ce), (msg), (ptr) TSRMLS_CC)
+extern zend_object_value _http_message_object_new_ex(zend_class_entry *ce, http_message *msg, http_message_object **ptr TSRMLS_DC);
+#define http_message_object_clone(zobj) _http_message_object_clone_obj(zobj TSRMLS_CC)
+extern zend_object_value _http_message_object_clone_obj(zval *object TSRMLS_DC);
+#define http_message_object_free(o) _http_message_object_free((o) TSRMLS_CC)
 extern void _http_message_object_free(zend_object *object TSRMLS_DC);
 
-#define HTTP_MSG_PROPHASH_TYPE                 276192743LU
-#define HTTP_MSG_PROPHASH_HTTP_VERSION         1138628683LU
-#define HTTP_MSG_PROPHASH_RAW                  2090679983LU
-#define HTTP_MSG_PROPHASH_BODY                 254474387LU
-#define HTTP_MSG_PROPHASH_HEADERS              3199929089LU
-#define HTTP_MSG_PROPHASH_NESTED_MESSAGE       3652857165LU
-#define HTTP_MSG_PROPHASH_REQUEST_METHOD       1669022159LU
-#define HTTP_MSG_PROPHASH_REQUEST_URI          3208695486LU
-#define HTTP_MSG_PROPHASH_RESPONSE_STATUS      3857097400LU
-#define HTTP_MSG_PROPHASH_RESPONSE_CODE        1305615119LU
+#define HTTP_MSG_CHECK_OBJ(obj, dofail) \
+       if (!(obj)->message) { \
+               http_error(E_WARNING, HTTP_E_MSG, "HttpMessage is empty"); \
+               dofail; \
+       }
+#define HTTP_MSG_CHECK_STD() HTTP_MSG_CHECK_OBJ(obj, RETURN_FALSE)
+
+#define HTTP_MSG_INIT_OBJ(obj) \
+       if (!(obj)->message) { \
+               (obj)->message = http_message_new(); \
+       }
+#define HTTP_MSG_INIT_STD() HTTP_MSG_INIT_OBJ(obj)
 
 PHP_METHOD(HttpMessage, __construct);
-PHP_METHOD(HttpMessage, setRaw);
 PHP_METHOD(HttpMessage, getBody);
+PHP_METHOD(HttpMessage, setBody);
+PHP_METHOD(HttpMessage, getHeader);
 PHP_METHOD(HttpMessage, getHeaders);
 PHP_METHOD(HttpMessage, setHeaders);
 PHP_METHOD(HttpMessage, addHeaders);
 PHP_METHOD(HttpMessage, getType);
 PHP_METHOD(HttpMessage, setType);
+PHP_METHOD(HttpMessage, getInfo);
+PHP_METHOD(HttpMessage, setInfo);
 PHP_METHOD(HttpMessage, getResponseCode);
 PHP_METHOD(HttpMessage, setResponseCode);
+PHP_METHOD(HttpMessage, getResponseStatus);
+PHP_METHOD(HttpMessage, setResponseStatus);
 PHP_METHOD(HttpMessage, getRequestMethod);
 PHP_METHOD(HttpMessage, setRequestMethod);
-PHP_METHOD(HttpMessage, getRequestUri);
-PHP_METHOD(HttpMessage, setRequestUri);
+PHP_METHOD(HttpMessage, getRequestUrl);
+PHP_METHOD(HttpMessage, setRequestUrl);
 PHP_METHOD(HttpMessage, getHttpVersion);
 PHP_METHOD(HttpMessage, setHttpVersion);
+PHP_METHOD(HttpMessage, guessContentType);
+PHP_METHOD(HttpMessage, getParentMessage);
+PHP_METHOD(HttpMessage, send);
 PHP_METHOD(HttpMessage, toString);
+PHP_METHOD(HttpMessage, toMessageTypeObject);
 
-PHP_METHOD(HttpMessage, fromString);
+PHP_METHOD(HttpMessage, count);
+PHP_METHOD(HttpMessage, serialize);
+PHP_METHOD(HttpMessage, unserialize);
+PHP_METHOD(HttpMessage, rewind);
+PHP_METHOD(HttpMessage, valid);
+PHP_METHOD(HttpMessage, current);
+PHP_METHOD(HttpMessage, key);
+PHP_METHOD(HttpMessage, next);
+
+PHP_METHOD(HttpMessage, factory);
+PHP_METHOD(HttpMessage, fromEnv);
+
+PHP_METHOD(HttpMessage, detach);
+PHP_METHOD(HttpMessage, prepend);
+PHP_METHOD(HttpMessage, reverse);
 
 #endif
 #endif
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: noet sw=4 ts=4 fdm=marker
+ * vim<600: noet sw=4 ts=4
+ */
+