summaryrefslogtreecommitdiff
path: root/php/src/IcePHP/Communicator.cpp
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2007-05-16 03:26:50 +0000
committerMatthew Newhook <matthew@zeroc.com>2007-05-16 03:26:50 +0000
commit19ff7dddc4f3b7c19507816e9a5f9f8cd271521d (patch)
tree05e499540124c6296d6c395f46c68d7a728258ce /php/src/IcePHP/Communicator.cpp
parentbug 2210 - segfault when terminating a server with a signal (diff)
downloadice-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.cpp37
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)