branch off v1 as R_1_7
[m6w6/ext-http] / php_http_request_object.h
index e22378548a635c66a983663f84254f24f5d66d2d..262a202ae4fd39e6c9b2d85f88592879cb854dfc 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$ */
 #ifdef HTTP_HAVE_CURL
 #ifdef ZEND_ENGINE_2
 
-#ifdef PHP_WIN32
-#      include <winsock2.h>
-#endif
-
-#include <curl/curl.h>
-
 #include "php_http_request_api.h"
-#include "phpstr/phpstr.h"
+#include "php_http_request_pool_api.h"
+#include "php_http_request_datashare_api.h"
 
-typedef struct {
+typedef struct _http_request_object_t {
        zend_object zo;
-       CURL *ch;
+       http_request *request;
        http_request_pool *pool;
-       phpstr response;
+       http_request_datashare *share;
 } http_request_object;
 
 extern zend_class_entry *http_request_object_ce;
 extern zend_function_entry http_request_object_fe[];
 
-#define http_request_object_init() _http_request_object_init(INIT_FUNC_ARGS_PASSTHRU)
-extern void _http_request_object_init(INIT_FUNC_ARGS);
-#define http_request_object_new _http_request_object_new
+extern PHP_MINIT_FUNCTION(http_request_object);
+
+#define http_request_object_new(ce) _http_request_object_new((ce) TSRMLS_CC)
 extern zend_object_value _http_request_object_new(zend_class_entry *ce TSRMLS_DC);
-#define http_request_object_free _http_request_object_free
+#define http_request_object_new_ex(ce, ch, ptr) _http_request_object_new_ex((ce), (ch), (ptr) TSRMLS_CC)
+extern zend_object_value _http_request_object_new_ex(zend_class_entry *ce, CURL *ch, http_request_object **ptr TSRMLS_DC);
+#define http_request_object_clone(zv) _http_request_object_clone_obj((zv) TSRMLS_CC)
+extern zend_object_value _http_request_object_clone_obj(zval *zobject TSRMLS_DC);
+#define http_request_object_free(o) _http_request_object_free((o) TSRMLS_CC)
 extern void _http_request_object_free(zend_object *object TSRMLS_DC);
 
-#define http_request_object_requesthandler(req, this, body) _http_request_object_requesthandler((req), (this), (body) TSRMLS_CC)
-extern STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ptr, http_request_body *body TSRMLS_DC);
-#define http_request_object_responsehandler(req, this, info) _http_request_object_responsehandler((req), (this), (info) TSRMLS_CC)
-extern STATUS _http_request_object_responsehandler(http_request_object *obj, zval *this_ptr, HashTable *info TSRMLS_DC);
+#define http_request_object_requesthandler(req, this) _http_request_object_requesthandler((req), (this) TSRMLS_CC)
+extern STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ptr TSRMLS_DC);
+#define http_request_object_responsehandler(req, this) _http_request_object_responsehandler((req), (this) TSRMLS_CC)
+extern STATUS _http_request_object_responsehandler(http_request_object *obj, zval *this_ptr TSRMLS_DC);
 
 PHP_METHOD(HttpRequest, __construct);
-PHP_METHOD(HttpRequest, __destruct);
 PHP_METHOD(HttpRequest, setOptions);
 PHP_METHOD(HttpRequest, getOptions);
-PHP_METHOD(HttpRequest, unsetOptions);
+PHP_METHOD(HttpRequest, addSslOptions);
 PHP_METHOD(HttpRequest, setSslOptions);
 PHP_METHOD(HttpRequest, getSslOptions);
-PHP_METHOD(HttpRequest, unsetSslOptions);
 PHP_METHOD(HttpRequest, addHeaders);
 PHP_METHOD(HttpRequest, getHeaders);
-PHP_METHOD(HttpRequest, unsetHeaders);
+PHP_METHOD(HttpRequest, setHeaders);
 PHP_METHOD(HttpRequest, addCookies);
 PHP_METHOD(HttpRequest, getCookies);
-PHP_METHOD(HttpRequest, unsetCookies);
+PHP_METHOD(HttpRequest, setCookies);
+PHP_METHOD(HttpRequest, enableCookies);
+PHP_METHOD(HttpRequest, resetCookies);
+PHP_METHOD(HttpRequest, flushCookies);
 PHP_METHOD(HttpRequest, setMethod);
 PHP_METHOD(HttpRequest, getMethod);
-PHP_METHOD(HttpRequest, setURL);
-PHP_METHOD(HttpRequest, getURL);
+PHP_METHOD(HttpRequest, setUrl);
+PHP_METHOD(HttpRequest, getUrl);
 PHP_METHOD(HttpRequest, setContentType);
 PHP_METHOD(HttpRequest, getContentType);
 PHP_METHOD(HttpRequest, setQueryData);
 PHP_METHOD(HttpRequest, getQueryData);
 PHP_METHOD(HttpRequest, addQueryData);
-PHP_METHOD(HttpRequest, unsetQueryData);
 PHP_METHOD(HttpRequest, setPostFields);
 PHP_METHOD(HttpRequest, getPostFields);
 PHP_METHOD(HttpRequest, addPostFields);
-PHP_METHOD(HttpRequest, unsetPostFields);
+PHP_METHOD(HttpRequest, getBody);
+PHP_METHOD(HttpRequest, setBody);
+PHP_METHOD(HttpRequest, addBody);
 PHP_METHOD(HttpRequest, addPostFile);
 PHP_METHOD(HttpRequest, setPostFiles);
 PHP_METHOD(HttpRequest, getPostFiles);
-PHP_METHOD(HttpRequest, unsetPostFiles);
 PHP_METHOD(HttpRequest, setPutFile);
 PHP_METHOD(HttpRequest, getPutFile);
-PHP_METHOD(HttpRequest, unsetPutFile);
+PHP_METHOD(HttpRequest, getPutData);
+PHP_METHOD(HttpRequest, setPutData);
+PHP_METHOD(HttpRequest, addPutData);
 PHP_METHOD(HttpRequest, send);
 PHP_METHOD(HttpRequest, getResponseData);
 PHP_METHOD(HttpRequest, getResponseHeader);
-PHP_METHOD(HttpRequest, getResponseCookie);
+PHP_METHOD(HttpRequest, getResponseCookies);
 PHP_METHOD(HttpRequest, getResponseCode);
+PHP_METHOD(HttpRequest, getResponseStatus);
 PHP_METHOD(HttpRequest, getResponseBody);
 PHP_METHOD(HttpRequest, getResponseInfo);
 PHP_METHOD(HttpRequest, getResponseMessage);
+PHP_METHOD(HttpRequest, getRawResponseMessage);
+PHP_METHOD(HttpRequest, getRequestMessage);
+PHP_METHOD(HttpRequest, getRawRequestMessage);
+PHP_METHOD(HttpRequest, getHistory);
+PHP_METHOD(HttpRequest, clearHistory);
+PHP_METHOD(HttpRequest, getMessageClass);
+PHP_METHOD(HttpRequest, setMessageClass);
+PHP_METHOD(HttpRequest, factory);
 
 #endif
 #endif