2 +--------------------------------------------------------------------+
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted provided that the conditions mentioned |
7 | in the accompanying LICENSE file are met. |
8 +--------------------------------------------------------------------+
9 | Copyright (c) 2004-2011, Michael Wallner <mike@php.net> |
10 +--------------------------------------------------------------------+
13 #ifndef PHP_HTTP_ENV_RESPONSE_H
14 #define PHP_HTTP_ENV_RESPONSE_H
16 typedef struct php_http_env_response php_http_env_response_t
;
18 typedef struct php_http_env_response_ops
{
19 STATUS (*init
)(php_http_env_response_t
*r
, void *arg
);
20 void (*dtor
)(php_http_env_response_t
*r
);
21 long (*get_status
)(php_http_env_response_t
*r
);
22 STATUS (*set_status
)(php_http_env_response_t
*r
, long http_code
);
23 STATUS (*set_protocol_version
)(php_http_env_response_t
*r
, php_http_version_t
*v
);
24 STATUS (*set_header
)(php_http_env_response_t
*r
, const char *fmt
, ...);
25 STATUS (*add_header
)(php_http_env_response_t
*r
, const char *fmt
, ...);
26 STATUS (*del_header
)(php_http_env_response_t
*r
, const char *header_str
, size_t header_len
);
27 STATUS (*write
)(php_http_env_response_t
*r
, const char *data_str
, size_t data_len
);
28 STATUS (*flush
)(php_http_env_response_t
*r
);
29 STATUS (*finish
)(php_http_env_response_t
*r
);
30 } php_http_env_response_ops_t
;
32 PHP_HTTP_API php_http_env_response_ops_t
*php_http_env_response_get_sapi_ops(void);
33 PHP_HTTP_API php_http_env_response_ops_t
*php_http_env_response_get_stream_ops(void);
35 struct php_http_env_response
{
37 php_http_env_response_ops_t
*ops
;
39 php_http_buffer_t
*buffer
;
48 php_http_range_status_t status
;
58 php_http_encoding_stream_t
*encoder
;
68 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
);
69 PHP_HTTP_API STATUS
php_http_env_response_send(php_http_env_response_t
*r
);
70 PHP_HTTP_API
void php_http_env_response_dtor(php_http_env_response_t
*r
);
71 PHP_HTTP_API
void php_http_env_response_free(php_http_env_response_t
**r
);
73 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
);
74 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
);
76 zend_class_entry
*php_http_env_response_get_class_entry(void);
78 PHP_METHOD(HttpEnvResponse
, __construct
);
79 PHP_METHOD(HttpEnvResponse
, __invoke
);
80 PHP_METHOD(HttpEnvResponse
, setEnvRequest
);
81 PHP_METHOD(HttpEnvResponse
, setContentType
);
82 PHP_METHOD(HttpEnvResponse
, setContentDisposition
);
83 PHP_METHOD(HttpEnvResponse
, setContentEncoding
);
84 PHP_METHOD(HttpEnvResponse
, setCacheControl
);
85 PHP_METHOD(HttpEnvResponse
, setLastModified
);
86 PHP_METHOD(HttpEnvResponse
, isCachedByLastModified
);
87 PHP_METHOD(HttpEnvResponse
, setEtag
);
88 PHP_METHOD(HttpEnvResponse
, isCachedByEtag
);
89 PHP_METHOD(HttpEnvResponse
, setThrottleRate
);
90 PHP_METHOD(HttpEnvResponse
, send
);
93 PHP_MINIT_FUNCTION(http_env_response
);
102 * vim600: noet sw=4 ts=4 fdm=marker
103 * vim<600: noet sw=4 ts=4