X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_env_response.h;h=b67293050cbf34af925988f50a53b6673cda5c80;hp=ab5ee5c2c12d54305442eebeed128d3b93fd6d95;hb=refs%2Fheads%2Fv2.3.x;hpb=3de3e5f65db0e7c24849c0e7c60c54a4e8566422 diff --git a/php_http_env_response.h b/php_http_env_response.h index ab5ee5c..b672930 100644 --- a/php_http_env_response.h +++ b/php_http_env_response.h @@ -6,14 +6,37 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2011, Michael Wallner | + | Copyright (c) 2004-2014, Michael Wallner | +--------------------------------------------------------------------+ */ #ifndef PHP_HTTP_ENV_RESPONSE_H #define PHP_HTTP_ENV_RESPONSE_H -typedef struct php_http_env_response { +typedef struct php_http_env_response php_http_env_response_t; + +typedef struct php_http_env_response_ops { + STATUS (*init)(php_http_env_response_t *r, void *arg); + void (*dtor)(php_http_env_response_t *r); + long (*get_status)(php_http_env_response_t *r); + STATUS (*set_status)(php_http_env_response_t *r, long http_code); + STATUS (*set_protocol_version)(php_http_env_response_t *r, php_http_version_t *v); + STATUS (*set_header)(php_http_env_response_t *r, const char *fmt, ...); + STATUS (*add_header)(php_http_env_response_t *r, const char *fmt, ...); + STATUS (*del_header)(php_http_env_response_t *r, const char *header_str, size_t header_len); + STATUS (*write)(php_http_env_response_t *r, const char *data_str, size_t data_len); + STATUS (*flush)(php_http_env_response_t *r); + STATUS (*finish)(php_http_env_response_t *r); +} php_http_env_response_ops_t; + +PHP_HTTP_API php_http_env_response_ops_t *php_http_env_response_get_sapi_ops(void); +PHP_HTTP_API php_http_env_response_ops_t *php_http_env_response_get_stream_ops(void); + +struct php_http_env_response { + void *ctx; + php_http_env_response_ops_t *ops; + + php_http_cookie_list_t *cookies; php_http_buffer_t *buffer; zval *options; @@ -41,33 +64,17 @@ typedef struct php_http_env_response { #ifdef ZTS void ***ts; #endif -} php_http_env_response_t; +}; -PHP_HTTP_API php_http_env_response_t *php_http_env_response_init(php_http_env_response_t *r, zval *options TSRMLS_DC); +PHP_HTTP_API php_http_env_response_t *php_http_env_response_init(php_http_env_response_t *r, zval *options, php_http_env_response_ops_t *ops, void *ops_ctx TSRMLS_DC); PHP_HTTP_API STATUS php_http_env_response_send(php_http_env_response_t *r); PHP_HTTP_API void php_http_env_response_dtor(php_http_env_response_t *r); PHP_HTTP_API void php_http_env_response_free(php_http_env_response_t **r); -PHP_HTTP_API php_http_cache_status_t php_http_env_is_response_cached_by_etag(zval *options, const char *header_str, size_t header_len TSRMLS_DC); -PHP_HTTP_API php_http_cache_status_t php_http_env_is_response_cached_by_last_modified(zval *options, const char *header_str, size_t header_len TSRMLS_DC); - -extern zend_class_entry *php_http_env_response_class_entry; -extern zend_function_entry php_http_env_response_method_entry[]; - -PHP_METHOD(HttpEnvResponse, __construct); -PHP_METHOD(HttpEnvResponse, __invoke); -PHP_METHOD(HttpEnvResponse, setContentType); -PHP_METHOD(HttpEnvResponse, setContentDisposition); -PHP_METHOD(HttpEnvResponse, setContentEncoding); -PHP_METHOD(HttpEnvResponse, setCacheControl); -PHP_METHOD(HttpEnvResponse, setLastModified); -PHP_METHOD(HttpEnvResponse, isCachedByLastModified); -PHP_METHOD(HttpEnvResponse, setEtag); -PHP_METHOD(HttpEnvResponse, isCachedByEtag); -PHP_METHOD(HttpEnvResponse, setThrottleRate); -PHP_METHOD(HttpEnvResponse, send); - +PHP_HTTP_API php_http_cache_status_t php_http_env_is_response_cached_by_etag(zval *options, const char *header_str, size_t header_len, php_http_message_t *request TSRMLS_DC); +PHP_HTTP_API php_http_cache_status_t php_http_env_is_response_cached_by_last_modified(zval *options, const char *header_str, size_t header_len, php_http_message_t *request TSRMLS_DC); +PHP_HTTP_API zend_class_entry *php_http_env_response_class_entry; PHP_MINIT_FUNCTION(http_env_response); #endif