- remove debug statement
[m6w6/ext-http] / phpstr / phpstr.h
index a36f88ac2d25aab2dfaa6bf0c37ed33edd6366f4..5b56e1124a77853fde611411acc1c2efd825b086 100644 (file)
@@ -6,6 +6,10 @@
 
 #include "php.h"
 
+#ifndef PHPSTR_DEFAULT_SIZE
+#      define PHPSTR_DEFAULT_SIZE 256
+#endif
+
 #ifndef STR_SET
 #      define STR_SET(STR, SET) \
        { \
@@ -85,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))
@@ -145,12 +149,24 @@ PHPSTR_API phpstr *phpstr_merge_va(phpstr *buf, unsigned argc, va_list argv);
 /* sets a trailing NUL byte */
 PHPSTR_API void phpstr_fix(phpstr *buf);
 
+/* memcmp for phpstr objects */
+PHPSTR_API int phpstr_cmp(phpstr *left, phpstr *right);
+
+/* reset phpstr object */
+PHPSTR_API void phpstr_reset(phpstr *buf);
+
 /* free a phpstr objects contents */
 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