X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_env_response.h;h=3a702b23273c144412e131f21ff290ed4184ef90;hp=67ae674ad4b779f52e640989b0ce0c119ca37a80;hb=refs%2Fheads%2Fv2.1.x;hpb=4d708279b6956fc95b253ddc88671fb2f0e5aa39 diff --git a/php_http_env_response.h b/php_http_env_response.h index 67ae674..3a702b2 100644 --- a/php_http_env_response.h +++ b/php_http_env_response.h @@ -1,7 +1,41 @@ +/* + +--------------------------------------------------------------------+ + | PECL :: http | + +--------------------------------------------------------------------+ + | Redistribution and use in source and binary forms, with or without | + | modification, are permitted provided that the conditions mentioned | + | in the accompanying LICENSE file are met. | + +--------------------------------------------------------------------+ + | 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_buffer_t *buffer; zval *options; @@ -29,32 +63,27 @@ 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 STATUS php_Http_env_response_send(php_http_env_response_t *r); +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, 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 + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + * vim600: noet sw=4 ts=4 fdm=marker + * vim<600: noet sw=4 ts=4 + */ +