diff options
author | Matthew Newhook <matthew@zeroc.com> | 2007-05-16 03:26:50 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2007-05-16 03:26:50 +0000 |
commit | 19ff7dddc4f3b7c19507816e9a5f9f8cd271521d (patch) | |
tree | 05e499540124c6296d6c395f46c68d7a728258ce /php/src/IcePHP/Communicator.cpp | |
parent | bug 2210 - segfault when terminating a server with a signal (diff) | |
download | ice-19ff7dddc4f3b7c19507816e9a5f9f8cd271521d.tar.bz2 ice-19ff7dddc4f3b7c19507816e9a5f9f8cd271521d.tar.xz ice-19ff7dddc4f3b7c19507816e9a5f9f8cd271521d.zip |
Added proxy test. Cleaned up operations test.
Diffstat (limited to 'php/src/IcePHP/Communicator.cpp')
-rw-r--r-- | php/src/IcePHP/Communicator.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/php/src/IcePHP/Communicator.cpp b/php/src/IcePHP/Communicator.cpp index e600bdcf964..d020b39ed28 100644 --- a/php/src/IcePHP/Communicator.cpp +++ b/php/src/IcePHP/Communicator.cpp @@ -46,6 +46,7 @@ static function_entry _methods[] = { {"__construct", PHP_FN(Ice_Communicator___construct), 0}, {"getProperty", PHP_FN(Ice_Communicator_getProperty), 0}, + {"setProperty", PHP_FN(Ice_Communicator_setProperty), 0}, {"stringToProxy", PHP_FN(Ice_Communicator_stringToProxy), 0}, {"proxyToString", PHP_FN(Ice_Communicator_proxyToString), 0}, {"propertyToProxy", PHP_FN(Ice_Communicator_propertyToProxy), 0}, @@ -193,6 +194,42 @@ ZEND_FUNCTION(Ice_Communicator_getProperty) } } +ZEND_FUNCTION(Ice_Communicator_setProperty) +{ + if(ZEND_NUM_ARGS() != 2) + { + WRONG_PARAM_COUNT; + } + + ice_object* obj = getObject(getThis() TSRMLS_CC); + if(!obj) + { + return; + } + assert(obj->ptr); + Ice::CommunicatorPtr* _this = static_cast<Ice::CommunicatorPtr*>(obj->ptr); + + char *prop; + int propLen; + char *val; + int valLen; + + if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &prop, &propLen, &val, &valLen) == FAILURE) + { + RETURN_NULL(); + } + + try + { + (*_this)->getProperties()->setProperty(prop, val); + } + catch(const IceUtil::Exception& ex) + { + throwException(ex TSRMLS_CC); + } + RETURN_EMPTY_STRING(); +} + ZEND_FUNCTION(Ice_Communicator_stringToProxy) { if(ZEND_NUM_ARGS() != 1) |