split off raphf
[m6w6/ext-http] / php_http_client_pool.h
index 937bacf8933aaf4c61adcc1d99d04932fc58572a..17bfe13c4a2e986c8af3d9f53a0ac974c0801c01 100644 (file)
@@ -25,12 +25,12 @@ 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);
 
 typedef struct php_http_client_pool_ops {
-       php_http_resource_factory_ops_t *rsrc;
+       php_resource_factory_ops_t *rsrc;
        php_http_client_pool_init_func_t init;
        php_http_client_pool_copy_func_t copy;
        php_http_client_pool_dtor_func_t dtor;
@@ -41,14 +41,17 @@ 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 {
        void *ctx;
-       php_http_resource_factory_t *rf;
+       php_resource_factory_t *rf;
        php_http_client_pool_ops_t *ops;
 
        struct {
+               php_http_client_t *master;
                zend_llist attached;
                zend_llist finished;
        } clients;
@@ -58,7 +61,7 @@ typedef struct php_http_client_pool {
 #endif
 } php_http_client_pool_t;
 
-PHP_HTTP_API php_http_client_pool_t *php_http_client_pool_init(php_http_client_pool_t *pool, php_http_client_pool_ops_t *ops, php_http_resource_factory_t *rf, void *init_arg TSRMLS_DC);
+PHP_HTTP_API php_http_client_pool_t *php_http_client_pool_init(php_http_client_pool_t *pool, php_http_client_pool_ops_t *ops, php_resource_factory_t *rf, void *init_arg TSRMLS_DC);
 PHP_HTTP_API php_http_client_pool_t *php_http_client_pool_copy(php_http_client_pool_t *from, php_http_client_pool_t *to);
 PHP_HTTP_API void php_http_client_pool_dtor(php_http_client_pool_t *pool);
 PHP_HTTP_API void php_http_client_pool_free(php_http_client_pool_t **pool);
@@ -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);