diff options
| author | Wez Furlong <wez@php.net> | 2003-03-01 01:27:50 +0000 |
|---|---|---|
| committer | Wez Furlong <wez@php.net> | 2003-03-01 01:27:50 +0000 |
| commit | 558db0d87a3a7a3c32980a2f702a9a302bee9051 (patch) | |
| tree | 222f13f51940453f9c4b896b938f11ef1376a137 | |
| parent | 349ce76f9660850c0a15f660dff7cebb81c0abc8 (diff) | |
| download | php-git-558db0d87a3a7a3c32980a2f702a9a302bee9051.tar.gz | |
Expose php_stream_copy_to_stream as stream_copy_to_stream(); a high
performance alternative to looping reads and writes.
| -rw-r--r-- | ext/standard/basic_functions.c | 1 | ||||
| -rw-r--r-- | ext/standard/streamsfuncs.c | 19 | ||||
| -rw-r--r-- | ext/standard/streamsfuncs.h | 2 |
3 files changed, 22 insertions, 0 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index d9ef2ebb6c..d4f0454646 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -683,6 +683,7 @@ function_entry basic_functions[] = { PHP_FE(stream_socket_server, second_and_third_args_force_ref) PHP_FE(stream_socket_accept, third_arg_force_ref) PHP_FE(stream_socket_get_name, NULL) + PHP_FE(stream_copy_to_stream, NULL) PHP_FE(fgetcsv, NULL) PHP_FE(flock, NULL) PHP_FE(get_meta_tags, NULL) diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c index 4e46d7694a..5e0c48b491 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -263,6 +263,25 @@ PHP_FUNCTION(stream_socket_get_name) } /* }}} */ +/* {{{ proto long stream_copy_to_stream(resource source, resource dest [, long maxlen ]) + Reads up to maxlen bytes from source stream and writes them to dest stream. */ +PHP_FUNCTION(stream_copy_to_stream) +{ + php_stream *src, *dest; + zval *zsrc, *zdest; + long maxlen = PHP_STREAM_COPY_ALL; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rr|l", &zsrc, &zdest, &maxlen) == FAILURE) { + RETURN_FALSE; + } + + php_stream_from_zval(src, &zsrc); + php_stream_from_zval(dest, &zdest); + + RETURN_LONG(php_stream_copy_to_stream(src, dest, maxlen)); +} +/* }}} */ + /* {{{ proto resource stream_get_meta_data(resource fp) Retrieves header/meta data from streams/file pointers */ PHP_FUNCTION(stream_get_meta_data) diff --git a/ext/standard/streamsfuncs.h b/ext/standard/streamsfuncs.h index 93b2f707a3..9da5f1f5af 100644 --- a/ext/standard/streamsfuncs.h +++ b/ext/standard/streamsfuncs.h @@ -27,6 +27,8 @@ PHP_FUNCTION(stream_socket_server); PHP_FUNCTION(stream_socket_accept); PHP_FUNCTION(stream_socket_get_name); +PHP_FUNCTION(stream_copy_to_stream); + PHP_FUNCTION(set_socket_blocking); /* deprecated */ PHP_FUNCTION(stream_set_blocking); PHP_FUNCTION(stream_select); |
