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 ZEND_RESULT_CODE (*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 ZEND_RESULT_CODE (*set_status
)(php_http_env_response_t
*r
, long http_code
);
23 ZEND_RESULT_CODE (*set_protocol_version
)(php_http_env_response_t
*r
, php_http_version_t
*v
);
24 ZEND_RESULT_CODE (*set_header
)(php_http_env_response_t
*r
, const char *fmt
, ...);
25 ZEND_RESULT_CODE (*add_header
)(php_http_env_response_t
*r
, const char *fmt
, ...);
26 ZEND_RESULT_CODE (*del_header
)(php_http_env_response_t
*r
, const char *header_str
, size_t header_len
);
27 ZEND_RESULT_CODE (*write
)(php_http_env_response_t
*r
, const char *data_str
, size_t data_len
);
28 ZEND_RESULT_CODE (*flush
)(php_http_env_response_t
*r
);
29 ZEND_RESULT_CODE (*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_cookie_list_t
*cookies
;
40 php_http_buffer_t
*buffer
;
49 php_http_range_status_t status
;
59 php_http_encoding_stream_t
*encoder
;
65 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
);
66 PHP_HTTP_API ZEND_RESULT_CODE
php_http_env_response_send(php_http_env_response_t
*r
);
67 PHP_HTTP_API
void php_http_env_response_dtor(php_http_env_response_t
*r
);
68 PHP_HTTP_API
void php_http_env_response_free(php_http_env_response_t
**r
);
70 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
);
71 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
);
73 PHP_HTTP_API zend_class_entry
*php_http_get_env_response_class_entry();
74 PHP_MINIT_FUNCTION(http_env_response
);
83 * vim600: noet sw=4 ts=4 fdm=marker
84 * vim<600: noet sw=4 ts=4