- fix previous commit and adjust tests
[m6w6/ext-http] / phpstr / phpstr.h
index 5b2ee5664a09c75ee7cec172e5ed5adfc01bdb91..04a74ed05718a7cd1076df8fa0fb03a5b1a90357 100644 (file)
@@ -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)
 #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))
 
 /* 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);
 
 /* 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
 
 
 #endif