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;
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;
#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);
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);
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);