X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=php_http_message_body.h;h=18670bd637ea4afd9677a2fb5d68caae767d9818;hb=59ffe749e2571c7e4bf0cce12997f95f350bd58c;hp=b6872073d08a93d33954d57f353d94c16e8223f4;hpb=df06e2dbf48a3b0d96f2c62071c1b5fc907a98d0;p=m6w6%2Fext-http diff --git a/php_http_message_body.h b/php_http_message_body.h index b687207..18670bd 100644 --- a/php_http_message_body.h +++ b/php_http_message_body.h @@ -6,12 +6,10 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2010, Michael Wallner | + | Copyright (c) 2004-2011, Michael Wallner | +--------------------------------------------------------------------+ */ -/* $Id: php_http_message_body_api.h 292841 2009-12-31 08:48:57Z mike $ */ - #ifndef PHP_HTTP_MESSAGE_BODY_H #define PHP_HTTP_MESSAGE_BODY_H @@ -24,18 +22,36 @@ typedef struct php_http_message_body { #endif } php_http_message_body_t; +typedef enum php_http_message_body_file_is { + PHP_HTTP_MESSAGE_BODY_FILE_IS_EMPTY, + PHP_HTTP_MESSAGE_BODY_FILE_IS_DATA, + PHP_HTTP_MESSAGE_BODY_FILE_IS_PATH, + PHP_HTTP_MESSAGE_BODY_FILE_IS_STREAM +} php_http_message_body_file_is_t; + +typedef struct php_http_message_body_file { + php_http_message_body_file_is_t type; + size_t length; + union { + char *data; + char *path; + php_stream *stream; + } file; +} php_http_message_body_file_t; + PHP_HTTP_API php_http_message_body_t *php_http_message_body_init(php_http_message_body_t *body, php_stream *stream TSRMLS_DC); -PHP_HTTP_API php_http_message_body_t *php_http_message_body_copy(php_http_message_body_t *from, php_http_message_body_t *to, zend_bool dup_internal_stream_and_contents TSRMLS_DC); +PHP_HTTP_API php_http_message_body_t *php_http_message_body_copy(php_http_message_body_t *from, php_http_message_body_t *to, zend_bool dup_internal_stream_and_contents); PHP_HTTP_API STATUS php_http_message_body_add(php_http_message_body_t *body, HashTable *fields, HashTable *files); PHP_HTTP_API STATUS php_http_message_body_add_field(php_http_message_body_t *body, const char *name, const char *value_str, size_t value_len); -PHP_HTTP_API STATUS php_http_message_body_add_file(php_http_message_body_t *body, const char *name, const char *path, const char *ctype); +PHP_HTTP_API STATUS php_http_message_body_add_file(php_http_message_body_t *body, const char *name, const char *ctype, const char *file, php_stream *stream); PHP_HTTP_API size_t php_http_message_body_append(php_http_message_body_t *body, const char *buf, size_t len); +PHP_HTTP_API size_t php_http_message_body_appendf(php_http_message_body_t *body, const char *fmt, ...); PHP_HTTP_API void php_http_message_body_to_string(php_http_message_body_t *body, char **buf, size_t *len, off_t offset, size_t forlen); PHP_HTTP_API void php_http_message_body_to_stream(php_http_message_body_t *body, php_stream *s, off_t offset, size_t forlen); PHP_HTTP_API void php_http_message_body_to_callback(php_http_message_body_t *body, php_http_pass_callback_t cb, void *cb_arg, off_t offset, size_t forlen); PHP_HTTP_API void php_http_message_body_dtor(php_http_message_body_t *body); PHP_HTTP_API void php_http_message_body_free(php_http_message_body_t **body); -PHP_HTTP_API php_stream_statbuf *php_http_message_body_stat(php_http_message_body_t *body); +PHP_HTTP_API const php_stream_statbuf *php_http_message_body_stat(php_http_message_body_t *body); #define php_http_message_body_size(b) (php_http_message_body_stat((b))->sb.st_size) #define php_http_message_body_mtime(b) (php_http_message_body_stat((b))->sb.st_mtime) PHP_HTTP_API char *php_http_message_body_etag(php_http_message_body_t *body); @@ -69,6 +85,8 @@ PHP_METHOD(HttpMessageBody, toStream); PHP_METHOD(HttpMessageBody, toCallback); PHP_METHOD(HttpMessageBody, append); PHP_METHOD(HttpMessageBody, add); +PHP_METHOD(HttpMessageBody, etag); +PHP_METHOD(HttpMessageBody, stat); #endif