split off raphf
[m6w6/ext-http] / php_http_client.h
index b5aeb5737e1751937fe5f0fb7fdd69ed19adf5a7..3562af93aed963d3eda5cbd1704d6635c98d7251 100644 (file)
@@ -38,7 +38,6 @@ typedef struct php_http_client_progress_callback {
                void (*intern)(php_http_client_progress_state_t* TSRMLS_DC);
        } func;
        unsigned type:1;
-       unsigned pass_state:1;
 } php_http_client_progress_callback_t;
 
 typedef struct php_http_client_progress {
@@ -69,32 +68,12 @@ static inline void php_http_client_progress_notify(php_http_client_progress_t *p
                with_error_handling(EH_NORMAL, NULL) {
                        switch (progress->callback->type) {
                                case PHP_HTTP_CLIENT_PROGRESS_CALLBACK_USER:
-                                       if (progress->callback->pass_state) {
-                                               zval *param;
-
-                                               MAKE_STD_ZVAL(param);
-                                               array_init(param);
-                                               add_assoc_bool(param, "started", progress->state.started);
-                                               add_assoc_bool(param, "finished", progress->state.finished);
-                                               add_assoc_string(param, "info", estrdup(progress->state.info), 0);
-                                               add_assoc_double(param, "dltotal", progress->state.dl.total);
-                                               add_assoc_double(param, "dlnow", progress->state.dl.now);
-                                               add_assoc_double(param, "ultotal", progress->state.ul.total);
-                                               add_assoc_double(param, "ulnow", progress->state.ul.now);
-
-                                               progress->in_cb = 1;
-                                               call_user_function(EG(function_table), NULL, progress->callback->func.user, &retval, 1, &param TSRMLS_CC);
-                                               progress->in_cb = 0;
-
-                                               zval_ptr_dtor(&param);
-                                       } else {
-                                               progress->in_cb = 1;
-                                               call_user_function(EG(function_table), NULL, progress->callback->func.user, &retval, 0, NULL TSRMLS_CC);
-                                               progress->in_cb = 0;
-                                       }
+                                       progress->in_cb = 1;
+                                       call_user_function(EG(function_table), NULL, progress->callback->func.user, &retval, 0, NULL TSRMLS_CC);
+                                       progress->in_cb = 0;
                                        break;
                                case PHP_HTTP_CLIENT_PROGRESS_CALLBACK_INTERN:
-                                       progress->callback->func.intern(progress->callback->pass_state ? &progress->state : NULL TSRMLS_CC);
+                                       progress->callback->func.intern(&progress->state TSRMLS_CC);
                                        break;
                                default:
                                        break;
@@ -128,7 +107,7 @@ typedef STATUS (*php_http_client_setopt_func_t)(struct php_http_client *h, php_h
 typedef STATUS (*php_http_client_getopt_func_t)(struct php_http_client *h, php_http_client_getopt_opt_t opt, void *arg);
 
 typedef struct php_http_client_ops {
-       php_http_resource_factory_ops_t *rsrc;
+       php_resource_factory_ops_t *rsrc;
        php_http_client_init_func_t init;
        php_http_client_copy_func_t copy;
        php_http_client_dtor_func_t dtor;
@@ -142,17 +121,24 @@ typedef struct php_http_client_ops {
 
 typedef struct php_http_client {
        void *ctx;
-       php_http_resource_factory_t *rf;
+       php_resource_factory_t *rf;
        php_http_client_ops_t *ops;
-       php_http_message_parser_t *parser;
-       php_http_message_t *message;
-       php_http_buffer_t *buffer;
+       struct {
+               php_http_message_parser_t *parser;
+               php_http_message_t *message;
+               php_http_buffer_t *buffer;
+       } request;
+       struct {
+               php_http_message_parser_t *parser;
+               php_http_message_t *message;
+               php_http_buffer_t *buffer;
+       } response;
 #ifdef ZTS
        void ***ts;
 #endif
 } php_http_client_t;
 
-PHP_HTTP_API php_http_client_t *php_http_client_init(php_http_client_t *h, php_http_client_ops_t *ops, php_http_resource_factory_t *rf, void *init_arg TSRMLS_DC);
+PHP_HTTP_API php_http_client_t *php_http_client_init(php_http_client_t *h, php_http_client_ops_t *ops, php_resource_factory_t *rf, void *init_arg TSRMLS_DC);
 PHP_HTTP_API php_http_client_t *php_http_client_copy(php_http_client_t *from, php_http_client_t *to);
 PHP_HTTP_API STATUS php_http_client_exec(php_http_client_t *h, php_http_message_t *msg);
 PHP_HTTP_API STATUS php_http_client_reset(php_http_client_t *h);
@@ -202,6 +188,7 @@ PHP_METHOD(HttpClient, flushCookies);
 PHP_METHOD(HttpClient, setRequest);
 PHP_METHOD(HttpClient, getRequest);
 PHP_METHOD(HttpClient, send);
+PHP_METHOD(HttpClient, request);
 PHP_METHOD(HttpClient, getResponseMessage);
 PHP_METHOD(HttpClient, getRequestMessage);
 PHP_METHOD(HttpClient, getHistory);