+typedef enum php_http_request_setopt_opt {
+ PHP_HTTP_REQUEST_OPT_SETTINGS, /* HashTable* */
+ PHP_HTTP_REQUEST_OPT_PROGRESS_CALLBACK, /* php_http_request_progress_callback_t* */
+ PHP_HTTP_REQUEST_OPT_COOKIES_ENABLE, /* - */
+ PHP_HTTP_REQUEST_OPT_COOKIES_RESET, /* - */
+ PHP_HTTP_REQUEST_OPT_COOKIES_RESET_SESSION, /* - */
+ PHP_HTTP_REQUEST_OPT_COOKIES_FLUSH, /* - */
+} php_http_request_setopt_opt_t;
+
+typedef enum php_http_request_getopt_opt {
+ PHP_HTTP_REQUEST_OPT_PROGRESS_INFO, /* php_http_request_progress_t** */
+ PHP_HTTP_REQUEST_OPT_TRANSFER_INFO, /* HashTable* */
+} php_http_request_getopt_opt_t;
+
+typedef struct php_http_request php_http_request_t;
+
+typedef php_http_request_t *(*php_http_request_init_func_t)(php_http_request_t *h, void *arg);
+typedef php_http_request_t *(*php_http_request_copy_func_t)(php_http_request_t *from, php_http_request_t *to);
+typedef void (*php_http_request_dtor_func_t)(php_http_request_t *h);
+typedef STATUS (*php_http_request_exec_func_t)(php_http_request_t *h, php_http_request_method_t meth, const char *url, php_http_message_body_t *body);
+typedef STATUS (*php_http_request_reset_func_t)(php_http_request_t *h);
+typedef STATUS (*php_http_request_setopt_func_t)(php_http_request_t *h, php_http_request_setopt_opt_t opt, void *arg);
+typedef STATUS (*php_http_request_getopt_func_t)(php_http_request_t *h, php_http_request_getopt_opt_t opt, void *arg);
+
+typedef struct php_http_request_ops {
+ php_http_resource_factory_ops_t *rsrc;
+ php_http_request_init_func_t init;
+ php_http_request_copy_func_t copy;
+ php_http_request_dtor_func_t dtor;
+ php_http_request_reset_func_t reset;
+ php_http_request_exec_func_t exec;
+ php_http_request_setopt_func_t setopt;
+ php_http_request_getopt_func_t getopt;
+} php_http_request_ops_t;
+
+PHP_HTTP_API php_http_request_ops_t *php_http_request_get_default_ops(TSRMLS_D);
+
+struct php_http_request {
+ void *ctx;
+ php_http_resource_factory_t *rf;
+ php_http_request_ops_t *ops;
+ php_http_message_parser_t *parser;
+ php_http_message_t *message;
+ php_http_buffer_t *buffer;
+ zval *persistent_handle_id;
+#ifdef ZTS
+ void ***ts;
+#endif
+};