X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_requestpool_object.c;h=81254c444c9231df3056dc1e54ba6b6862e35382;hp=09fc261045cbeac4469f52641b3c14921553daa2;hb=020d5b055921392c0dfb25043962a40867d8b033;hpb=76a1064dde808801f4988df89521a323661742aa diff --git a/http_requestpool_object.c b/http_requestpool_object.c index 09fc261..81254c4 100644 --- a/http_requestpool_object.c +++ b/http_requestpool_object.c @@ -19,32 +19,61 @@ #ifdef HAVE_CONFIG_H # include "config.h" #endif - -#ifdef HTTP_HAVE_CURL -# ifdef PHP_WIN32 -# include -# endif -# include -#endif - #include "php.h" +#if defined(ZEND_ENGINE_2) && defined(HTTP_HAVE_CURL) + #include "php_http_std_defs.h" #include "php_http_requestpool_object.h" -#include "php_http_request_api.h" +#include "php_http_request_pool_api.h" + +#ifdef PHP_WIN32 +# include +#endif +#include + +#define HTTP_BEGIN_ARGS(method, req_args) HTTP_BEGIN_ARGS_EX(HttpRequestPool, method, ZEND_RETURN_REFERENCE_AGNOSTIC, req_args) +#define HTTP_EMPTY_ARGS(method, ret_ref) HTTP_EMPTY_ARGS_EX(HttpRequestPool, method, ret_ref) +#define HTTP_REQPOOL_ME(method, visibility) PHP_ME(HttpRequestPool, method, HTTP_ARGS(HttpRequestPool, method), visibility) + +HTTP_BEGIN_ARGS_AR(HttpRequestPool, __construct, 0, 0) + HTTP_ARG_OBJ(HttpRequest, request0, 0) + HTTP_ARG_OBJ(HttpRequest, request1, 0) + HTTP_ARG_OBJ(HttpRequest, requestN, 0) +HTTP_END_ARGS; + +HTTP_EMPTY_ARGS(__destruct, 0); +HTTP_EMPTY_ARGS(reset, 0); + +HTTP_BEGIN_ARGS(attach, 1) + HTTP_ARG_OBJ(HttpRequest, request, 0) +HTTP_END_ARGS; + +HTTP_BEGIN_ARGS(detach, 1) + HTTP_ARG_OBJ(HttpRequest, request, 0) +HTTP_END_ARGS; + +HTTP_EMPTY_ARGS(send, 0); +HTTP_EMPTY_ARGS(socketSend, 0); +HTTP_EMPTY_ARGS(socketSelect, 0); +HTTP_EMPTY_ARGS(socketRead, 0); -#ifdef ZEND_ENGINE_2 -#ifdef HTTP_HAVE_CURL #define http_requestpool_object_declare_default_properties() _http_requestpool_object_declare_default_properties(TSRMLS_C) static inline void _http_requestpool_object_declare_default_properties(TSRMLS_D); zend_class_entry *http_requestpool_object_ce; zend_function_entry http_requestpool_object_fe[] = { - PHP_ME(HttpRequestPool, __construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) - PHP_ME(HttpRequestPool, attach, NULL, ZEND_ACC_PUBLIC) - PHP_ME(HttpRequestPool, detach, NULL, ZEND_ACC_PUBLIC) - PHP_ME(HttpRequestPool, send, NULL, ZEND_ACC_PUBLIC) + HTTP_REQPOOL_ME(__construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) + HTTP_REQPOOL_ME(__destruct, ZEND_ACC_PUBLIC|ZEND_ACC_DTOR) + HTTP_REQPOOL_ME(attach, ZEND_ACC_PUBLIC) + HTTP_REQPOOL_ME(detach, ZEND_ACC_PUBLIC) + HTTP_REQPOOL_ME(send, ZEND_ACC_PUBLIC) + HTTP_REQPOOL_ME(reset, ZEND_ACC_PUBLIC) + + HTTP_REQPOOL_ME(socketSend, ZEND_ACC_PROTECTED) + HTTP_REQPOOL_ME(socketSelect, ZEND_ACC_PROTECTED) + HTTP_REQPOOL_ME(socketRead, ZEND_ACC_PROTECTED) {NULL, NULL, NULL} }; @@ -90,14 +119,11 @@ void _http_requestpool_object_free(zend_object *object TSRMLS_DC) zend_hash_destroy(OBJ_PROP(o)); FREE_HASHTABLE(OBJ_PROP(o)); } - if (o->pool.ch) { - curl_multi_cleanup(o->pool.ch); - } + http_request_pool_dtor(&o->pool); efree(o); } -#endif /* HTTP_HAVE_CURL */ -#endif /* ZEND_ENGINE_2 */ +#endif /* ZEND_ENGINE_2 && HTTP_HAVE_CURL */ /* * Local variables: