-typedef struct php_http_request_pool {
- CURLM *ch;
- zend_llist finished;
- zend_llist handles;
- int unfinished; /* int because of curl_multi_perform() */
-#ifdef ZTS
- void ***ts;
-#endif
-#ifdef PHP_HTTP_HAVE_EVENT
- struct event *timeout;
- unsigned useevents:1;
- unsigned runsocket:1;
-#endif
-} php_http_request_pool_t;
+typedef php_http_request_pool_t *(*php_http_request_pool_init_func_t)(php_http_request_pool_t *p, void *arg);
+typedef php_http_request_pool_t *(*php_http_request_pool_copy_func_t)(php_http_request_pool_t *from, php_http_request_pool_t *to);
+typedef void (*php_http_request_pool_dtor_func_t)(php_http_request_pool_t *p);
+typedef void (*php_http_request_pool_reset_func_t)(php_http_request_pool_t *p);
+typedef STATUS (*php_http_request_pool_exec_func_t)(php_http_request_pool_t *p);
+typedef STATUS (*php_http_request_pool_wait_func_t)(php_http_request_pool_t *p, struct timeval *custom_timeout);
+typedef int (*php_http_request_pool_once_func_t)(php_http_request_pool_t *p);
+typedef STATUS (*php_http_request_pool_attach_func_t)(php_http_request_pool_t *p, php_http_request_t *r, php_http_request_method_t m, const char *url, php_http_message_body_t *body);
+typedef STATUS (*php_http_request_pool_detach_func_t)(php_http_request_pool_t *p, php_http_request_t *r);
+typedef STATUS (*php_http_request_pool_setopt_func_t)(php_http_request_pool_t *p, php_http_request_pool_setopt_opt_t opt, void *arg);