X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_message_object.h;h=2d9fcb1c6ab14aa3ab2ea974ada8ec2b8453f67c;hp=fb7a5bc74b90c9ba696b9eebbb3975aebabb92da;hb=b46113b852f9555e3bcd7a5dcb4dd0250c4aab74;hpb=663afa1b42e5eba3f683563759e7ab6c31de7424 diff --git a/php_http_message_object.h b/php_http_message_object.h index fb7a5bc..2d9fcb1 100644 --- a/php_http_message_object.h +++ b/php_http_message_object.h @@ -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 | - +----------------------------------------------------------------------+ + +--------------------------------------------------------------------+ + | 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-2006, Michael Wallner | + +--------------------------------------------------------------------+ */ /* $Id$ */ @@ -19,25 +16,32 @@ #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; 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); + +#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 @@ -46,10 +50,20 @@ extern void _http_message_object_free(zend_object *object TSRMLS_DC); #define HTTP_MSG_PROPHASH_HEADERS 3199929089LU #define HTTP_MSG_PROPHASH_PARENT_MESSAGE 2105714836LU #define HTTP_MSG_PROPHASH_REQUEST_METHOD 1669022159LU -#define HTTP_MSG_PROPHASH_REQUEST_URI 3208695486LU +#define HTTP_MSG_PROPHASH_REQUEST_URL 3208695585LU #define HTTP_MSG_PROPHASH_RESPONSE_STATUS 3857097400LU #define HTTP_MSG_PROPHASH_RESPONSE_CODE 1305615119LU +#define HTTP_MSG_CHILD_PROPHASH_TYPE 624467825LU +#define HTTP_MSG_CHILD_PROPHASH_HTTP_VERSION 1021966997LU +#define HTTP_MSG_CHILD_PROPHASH_BODY 602749469LU +#define HTTP_MSG_CHILD_PROPHASH_HEADERS 3626850379LU +#define HTTP_MSG_CHILD_PROPHASH_PARENT_MESSAGE 3910157662LU +#define HTTP_MSG_CHILD_PROPHASH_REQUEST_METHOD 3473464985LU +#define HTTP_MSG_CHILD_PROPHASH_REQUEST_URL 3855913003LU +#define HTTP_MSG_CHILD_PROPHASH_RESPONSE_STATUS 3274168514LU +#define HTTP_MSG_CHILD_PROPHASH_RESPONSE_CODE 1750746777LU + #define HTTP_MSG_CHECK_OBJ(obj, dofail) \ if (!(obj)->message) { \ http_error(E_WARNING, HTTP_E_MSG, "HttpMessage is empty"); \ @@ -65,6 +79,8 @@ extern void _http_message_object_free(zend_object *object TSRMLS_DC); PHP_METHOD(HttpMessage, __construct); PHP_METHOD(HttpMessage, getBody); +PHP_METHOD(HttpMessage, setBody); +PHP_METHOD(HttpMessage, getHeader); PHP_METHOD(HttpMessage, getHeaders); PHP_METHOD(HttpMessage, setHeaders); PHP_METHOD(HttpMessage, addHeaders); @@ -72,17 +88,34 @@ PHP_METHOD(HttpMessage, getType); PHP_METHOD(HttpMessage, setType); 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, 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, fromString); +PHP_METHOD(HttpMessage, detach); +PHP_METHOD(HttpMessage, prepend); +PHP_METHOD(HttpMessage, reverse); #endif #endif