fixes for windows and 5.3 compatibility
[m6w6/ext-http] / php_http_env_response.h
1 /*
2 +--------------------------------------------------------------------+
3 | PECL :: http |
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 +--------------------------------------------------------------------+
11 */
12
13 #ifndef PHP_HTTP_ENV_RESPONSE_H
14 #define PHP_HTTP_ENV_RESPONSE_H
15
16 typedef struct php_http_env_response {
17 php_http_buffer_t *buffer;
18 zval *options;
19
20 struct {
21 size_t chunk;
22 double delay;
23 } throttle;
24
25 struct {
26 php_http_range_status_t status;
27 HashTable values;
28 char boundary[32];
29 } range;
30
31 struct {
32 size_t length;
33 char *type;
34 char *encoding;
35
36 php_http_encoding_stream_t *encoder;
37 } content;
38
39 zend_bool done;
40
41 #ifdef ZTS
42 void ***ts;
43 #endif
44 } php_http_env_response_t;
45
46 PHP_HTTP_API php_http_env_response_t *php_http_env_response_init(php_http_env_response_t *r, zval *options TSRMLS_DC);
47 PHP_HTTP_API STATUS php_http_env_response_send(php_http_env_response_t *r);
48 PHP_HTTP_API void php_http_env_response_dtor(php_http_env_response_t *r);
49 PHP_HTTP_API void php_http_env_response_free(php_http_env_response_t **r);
50
51 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);
52 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);
53
54 zend_class_entry *php_http_env_response_get_class_entry(void);
55
56 PHP_METHOD(HttpEnvResponse, __construct);
57 PHP_METHOD(HttpEnvResponse, __invoke);
58 PHP_METHOD(HttpEnvResponse, setContentType);
59 PHP_METHOD(HttpEnvResponse, setContentDisposition);
60 PHP_METHOD(HttpEnvResponse, setContentEncoding);
61 PHP_METHOD(HttpEnvResponse, setCacheControl);
62 PHP_METHOD(HttpEnvResponse, setLastModified);
63 PHP_METHOD(HttpEnvResponse, isCachedByLastModified);
64 PHP_METHOD(HttpEnvResponse, setEtag);
65 PHP_METHOD(HttpEnvResponse, isCachedByEtag);
66 PHP_METHOD(HttpEnvResponse, setThrottleRate);
67 PHP_METHOD(HttpEnvResponse, send);
68
69
70 PHP_MINIT_FUNCTION(http_env_response);
71
72 #endif
73
74 /*
75 * Local variables:
76 * tab-width: 4
77 * c-basic-offset: 4
78 * End:
79 * vim600: noet sw=4 ts=4 fdm=marker
80 * vim<600: noet sw=4 ts=4
81 */
82