X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=phpstr%2Fphpstr.h;h=04a74ed05718a7cd1076df8fa0fb03a5b1a90357;hp=5b2ee5664a09c75ee7cec172e5ed5adfc01bdb91;hb=6be753a288ed7a42e0cd19551d85eb8eb14c4566;hpb=5dca59e3a269c903b395d97abe831c0fc138b5b6 diff --git a/phpstr/phpstr.h b/phpstr/phpstr.h index 5b2ee56..04a74ed 100644 --- a/phpstr/phpstr.h +++ b/phpstr/phpstr.h @@ -89,7 +89,7 @@ typedef enum { #define phpstr_new() phpstr_init(NULL) #define phpstr_init(b) phpstr_init_ex(b, 0, 0) #define phpstr_clone(phpstr_pointer) phpstr_init_ex(NULL, (phpstr_pointer)->size, 0) -PHPSTR_API phpstr *phpstr_init_ex(phpstr *buf, size_t chunk_size, zend_bool pre_alloc); +PHPSTR_API phpstr *phpstr_init_ex(phpstr *buf, size_t chunk_size, int pre_alloc); /* create a phpstr from a zval or c-string */ #define phpstr_from_zval(z) phpstr_from_string(Z_STRVAL(z), Z_STRLEN(z)) @@ -155,6 +155,12 @@ PHPSTR_API void phpstr_dtor(phpstr *buf); /* free a phpstr object completely */ PHPSTR_API void phpstr_free(phpstr **buf); +/* stores data in a phpstr until it reaches chunk_size */ +PHPSTR_API size_t phpstr_chunk_buffer(phpstr **s, const char *data, size_t data_len, char **chunk, size_t chunk_size); + +/* wrapper around phpstr_chunk_buffer, which passes available chunks to passthru() */ +PHPSTR_API void phpstr_chunked_output(phpstr **s, const char *data, size_t data_len, size_t chunk_size, void (*passthru)(const char *, size_t TSRMLS_DC) TSRMLS_DC); + #endif