X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_client_pool.h;h=071042d85f296f04cc8e82508a0a7efb46903fb4;hp=937bacf8933aaf4c61adcc1d99d04932fc58572a;hb=7b028d0cbb030f9610084314f67b77907d8474a2;hpb=6cc24086f57aa1e8f4d6a2c12361635e7c24f60f diff --git a/php_http_client_pool.h b/php_http_client_pool.h index 937bacf..071042d 100644 --- a/php_http_client_pool.h +++ b/php_http_client_pool.h @@ -25,7 +25,7 @@ typedef void (*php_http_client_pool_reset_func_t)(struct php_http_client_pool *p typedef STATUS (*php_http_client_pool_exec_func_t)(struct php_http_client_pool *p); typedef STATUS (*php_http_client_pool_wait_func_t)(struct php_http_client_pool *p, struct timeval *custom_timeout); typedef int (*php_http_client_pool_once_func_t)(struct php_http_client_pool *p); -typedef STATUS (*php_http_client_pool_attach_func_t)(struct php_http_client_pool *p, php_http_client_t *r, const char *m, const char *url, php_http_message_body_t *body); +typedef STATUS (*php_http_client_pool_attach_func_t)(struct php_http_client_pool *p, php_http_client_t *r, php_http_message_t *msg); typedef STATUS (*php_http_client_pool_detach_func_t)(struct php_http_client_pool *p, php_http_client_t *r); typedef STATUS (*php_http_client_pool_setopt_func_t)(struct php_http_client_pool *p, php_http_client_pool_setopt_opt_t opt, void *arg); @@ -41,6 +41,8 @@ typedef struct php_http_client_pool_ops { php_http_client_pool_attach_func_t attach; php_http_client_pool_detach_func_t detach; php_http_client_pool_setopt_func_t setopt; + php_http_new_t create_object; + zend_class_entry *(*class_entry)(void); } php_http_client_pool_ops_t; typedef struct php_http_client_pool { @@ -49,6 +51,7 @@ typedef struct php_http_client_pool { php_http_client_pool_ops_t *ops; struct { + php_http_client_t *master; zend_llist attached; zend_llist finished; } clients; @@ -74,20 +77,18 @@ PHP_HTTP_API void php_http_client_pool_requests(php_http_client_pool_t *h, zval typedef struct php_http_client_pool_object { zend_object zo; php_http_client_pool_t *pool; - zend_object_value factory; + zend_object_value client; struct { long pos; } iterator; } php_http_client_pool_object_t; -extern zend_class_entry *php_http_client_pool_class_entry; -extern zend_function_entry php_http_client_pool_method_entry[]; +zend_object_value php_http_client_pool_object_new(zend_class_entry *ce TSRMLS_DC); +zend_object_value php_http_client_pool_object_new_ex(zend_class_entry *ce, php_http_client_pool_t *p, php_http_client_pool_object_t **ptr TSRMLS_DC); +void php_http_client_pool_object_free(void *object TSRMLS_DC); -extern zend_object_value php_http_client_pool_object_new(zend_class_entry *ce TSRMLS_DC); -extern zend_object_value php_http_client_pool_object_new_ex(zend_class_entry *ce, php_http_client_pool_t *p, php_http_client_pool_object_t **ptr TSRMLS_DC); -extern void php_http_client_pool_object_free(void *object TSRMLS_DC); - -extern zend_object_handlers *php_http_client_pool_get_object_handlers(void); +zend_class_entry *php_http_client_pool_get_class_entry(void); +zend_object_handlers *php_http_client_pool_get_object_handlers(void); PHP_METHOD(HttpClientPool, __destruct); PHP_METHOD(HttpClientPool, attach); @@ -102,8 +103,8 @@ PHP_METHOD(HttpClientPool, key); PHP_METHOD(HttpClientPool, next); PHP_METHOD(HttpClientPool, rewind); PHP_METHOD(HttpClientPool, count); -PHP_METHOD(HttpClientPool, getAttachedRequests); -PHP_METHOD(HttpClientPool, getFinishedRequests); +PHP_METHOD(HttpClientPool, getAttached); +PHP_METHOD(HttpClientPool, getFinished); PHP_METHOD(HttpClientPool, enablePipelining); PHP_METHOD(HttpClientPool, enableEvents);