lbarnaud Thu Nov 13 05:46:51 2008 UTC Added files: /php-src/ext/standard/tests/streams stream_context_get_params_001.phpt
Modified files: /php-src/ext/standard basic_functions.c streamsfuncs.c streamsfuncs.h Log: Added stream_context_get_params() [DOC] proto bool stream_context_get_params(resource context|stream) Get parameters of a file context (parameters set by stream_context_set_params()) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/basic_functions.c?r1=1.934&r2=1.935&diff_format=u Index: php-src/ext/standard/basic_functions.c diff -u php-src/ext/standard/basic_functions.c:1.934 php-src/ext/standard/basic_functions.c:1.935 --- php-src/ext/standard/basic_functions.c:1.934 Wed Nov 5 21:33:19 2008 +++ php-src/ext/standard/basic_functions.c Thu Nov 13 05:46:51 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: basic_functions.c,v 1.934 2008/11/05 21:33:19 lbarnaud Exp $ */ +/* $Id: basic_functions.c,v 1.935 2008/11/13 05:46:51 lbarnaud Exp $ */ #include "php.h" #include "php_streams.h" @@ -2387,6 +2387,11 @@ ZEND_END_ARG_INFO() static +ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_params, 0, ZEND_RETURN_VALUE, 1) + ZEND_ARG_INFO(0, stream_or_context) +ZEND_END_ARG_INFO() + +static ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_default, 0, 0, 0) ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */ ZEND_END_ARG_INFO() @@ -3564,6 +3569,7 @@ PHP_FE(stream_select, arginfo_stream_select) PHP_FE(stream_context_create, arginfo_stream_context_create) PHP_FE(stream_context_set_params, arginfo_stream_context_set_params) + PHP_FE(stream_context_get_params, arginfo_stream_context_get_params) PHP_FE(stream_context_set_option, arginfo_stream_context_set_option) PHP_FE(stream_context_get_options, arginfo_stream_context_get_options) PHP_FE(stream_context_get_default, arginfo_stream_context_get_default) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.c?r1=1.129&r2=1.130&diff_format=u Index: php-src/ext/standard/streamsfuncs.c diff -u php-src/ext/standard/streamsfuncs.c:1.129 php-src/ext/standard/streamsfuncs.c:1.130 --- php-src/ext/standard/streamsfuncs.c:1.129 Tue Nov 4 16:45:42 2008 +++ php-src/ext/standard/streamsfuncs.c Thu Nov 13 05:46:51 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streamsfuncs.c,v 1.129 2008/11/04 16:45:42 lbarnaud Exp $ */ +/* $Id: streamsfuncs.c,v 1.130 2008/11/13 05:46:51 lbarnaud Exp $ */ #include "php.h" #include "php_globals.h" @@ -1151,6 +1151,35 @@ } /* }}} */ +/* {{{ proto bool stream_context_get_params(resource context|resource stream) U + Get parameters of a file context */ +PHP_FUNCTION(stream_context_get_params) +{ + zval *zcontext, *options; + php_stream_context *context; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zcontext) == FAILURE) { + RETURN_FALSE; + } + + context = decode_context_param(zcontext TSRMLS_CC); + if (!context) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid stream/context parameter"); + RETURN_FALSE; + } + + array_init(return_value); + if (context->notifier && context->notifier->ptr && context->notifier->func == user_space_stream_notifier) { + add_ascii_assoc_zval_ex(return_value, ZEND_STRS("notification"), context->notifier->ptr); + Z_ADDREF_P(context->notifier->ptr); + } + ALLOC_INIT_ZVAL(options); + ZVAL_ZVAL(options, context->options, 1, 0); + add_ascii_assoc_zval_ex(return_value, ZEND_STRS("options"), options); +} +/* }}} */ + + /* {{{ proto resource stream_context_get_default([array options]) U Get a handle on the default file/stream context and optionally set parameters */ PHP_FUNCTION(stream_context_get_default) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/streamsfuncs.h?r1=1.23&r2=1.24&diff_format=u Index: php-src/ext/standard/streamsfuncs.h diff -u php-src/ext/standard/streamsfuncs.h:1.23 php-src/ext/standard/streamsfuncs.h:1.24 --- php-src/ext/standard/streamsfuncs.h:1.23 Sat Aug 16 10:57:26 2008 +++ php-src/ext/standard/streamsfuncs.h Thu Nov 13 05:46:51 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streamsfuncs.h,v 1.23 2008/08/16 10:57:26 bjori Exp $ */ +/* $Id: streamsfuncs.h,v 1.24 2008/11/13 05:46:51 lbarnaud Exp $ */ /* Flags for stream_socket_client */ #define PHP_STREAM_CLIENT_PERSISTENT 1 @@ -46,6 +46,7 @@ PHP_FUNCTION(stream_wrapper_restore); PHP_FUNCTION(stream_context_create); PHP_FUNCTION(stream_context_set_params); +PHP_FUNCTION(stream_context_get_params); PHP_FUNCTION(stream_context_set_option); PHP_FUNCTION(stream_context_get_options); PHP_FUNCTION(stream_context_get_default); http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt +++ php-src/ext/standard/tests/streams/stream_context_get_params_001.phpt --TEST-- stream_context_get_params() --FILE-- <?php $ctx = stream_context_create(); var_dump($ctx); var_dump(stream_context_get_params($ctx)); var_dump(stream_context_set_option($ctx, "foo","bar","baz")); var_dump(stream_context_get_params($ctx)); var_dump(stream_context_set_params($ctx, array("notification" => "stream_notification_callback"))); var_dump(stream_context_get_params($ctx)); var_dump(stream_context_set_params($ctx, array("notification" => array("stream","notification_callback")))); var_dump(stream_context_get_params($ctx)); var_dump(stream_context_get_params($ctx)); var_dump(stream_context_get_options($ctx)); var_dump(stream_context_get_params($ctx)); var_dump(stream_context_get_options($ctx)); ?> --EXPECTF-- resource(%d) of type (stream-context) array(1) { [%u|b%"options"]=> array(0) { } } bool(true) array(1) { [%u|b%"options"]=> array(1) { [%u|b%"foo"]=> array(1) { [%u|b%"bar"]=> %unicode|string%(3) "baz" } } } bool(true) array(2) { [%u|b%"notification"]=> %unicode|string%(28) "stream_notification_callback" [%u|b%"options"]=> array(1) { [%u|b%"foo"]=> array(1) { [%u|b%"bar"]=> %unicode|string%(3) "baz" } } } bool(true) array(2) { [%u|b%"notification"]=> array(2) { [0]=> %unicode|string%(6) "stream" [1]=> %unicode|string%(21) "notification_callback" } [%u|b%"options"]=> array(1) { [%u|b%"foo"]=> array(1) { [%u|b%"bar"]=> %unicode|string%(3) "baz" } } } array(2) { [%u|b%"notification"]=> array(2) { [0]=> %unicode|string%(6) "stream" [1]=> %unicode|string%(21) "notification_callback" } [%u|b%"options"]=> array(1) { [%u|b%"foo"]=> array(1) { [%u|b%"bar"]=> %unicode|string%(3) "baz" } } } array(1) { [%u|b%"foo"]=> array(1) { [%u|b%"bar"]=> %unicode|string%(3) "baz" } } array(2) { [%u|b%"notification"]=> array(2) { [0]=> %unicode|string%(6) "stream" [1]=> %unicode|string%(21) "notification_callback" } [%u|b%"options"]=> array(1) { [%u|b%"foo"]=> array(1) { [%u|b%"bar"]=> %unicode|string%(3) "baz" } } } array(1) { [%u|b%"foo"]=> array(1) { [%u|b%"bar"]=> %unicode|string%(3) "baz" } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php