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-2014, 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 PHP_HTTP_API zend_class_entry
*php_http_env_response_class_entry
;
77 PHP_MINIT_FUNCTION(http_env_response
);
86 * vim600: noet sw=4 ts=4 fdm=marker
87 * vim<600: noet sw=4 ts=4