summaryrefslogtreecommitdiff
path: root/php/src/IcePHP/Logger.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2009-11-04 10:45:58 -0800
committerMark Spruiell <mes@zeroc.com>2009-11-04 10:45:58 -0800
commitf842b68930c6fc772343509b04542e57d36db583 (patch)
treee59dd6ecd7c1d98f39c88670e499b0ae5bf001e9 /php/src/IcePHP/Logger.cpp
parentbug 4349 - gcc warning in PythonUtil (diff)
downloadice-f842b68930c6fc772343509b04542e57d36db583.tar.bz2
ice-f842b68930c6fc772343509b04542e57d36db583.tar.xz
ice-f842b68930c6fc772343509b04542e57d36db583.zip
bug 2589:
- Fixing Python implementation of cloneWithPrefix - Implementing cloneWithPrefix in Ruby & PHP - Miscellaneous minor fixes
Diffstat (limited to 'php/src/IcePHP/Logger.cpp')
-rw-r--r--php/src/IcePHP/Logger.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/php/src/IcePHP/Logger.cpp b/php/src/IcePHP/Logger.cpp
index 3bac3cd1065..9f0d1e50285 100644
--- a/php/src/IcePHP/Logger.cpp
+++ b/php/src/IcePHP/Logger.cpp
@@ -153,6 +153,38 @@ ZEND_METHOD(Ice_Logger, error)
}
}
+ZEND_METHOD(Ice_Logger, cloneWithPrefix)
+{
+ char* p;
+ int pLen;
+
+ if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char*>("s"), &p, &pLen) == FAILURE)
+ {
+ RETURN_NULL();
+ }
+
+ Ice::LoggerPtr _this = Wrapper<Ice::LoggerPtr>::value(getThis() TSRMLS_CC);
+ assert(_this);
+
+ Ice::LoggerPtr clone;
+
+ string prefix(p, pLen);
+ try
+ {
+ clone = _this->cloneWithPrefix(prefix);
+ }
+ catch(const IceUtil::Exception& ex)
+ {
+ throwException(ex TSRMLS_CC);
+ RETURN_NULL();
+ }
+
+ if(!createLogger(return_value, clone TSRMLS_CC))
+ {
+ RETURN_NULL();
+ }
+}
+
#ifdef _WIN32
extern "C"
#endif
@@ -206,6 +238,7 @@ static function_entry _classMethods[] =
ZEND_ME(Ice_Logger, trace, NULL, ZEND_ACC_PUBLIC)
ZEND_ME(Ice_Logger, warning, NULL, ZEND_ACC_PUBLIC)
ZEND_ME(Ice_Logger, error, NULL, ZEND_ACC_PUBLIC)
+ ZEND_ME(Ice_Logger, cloneWithPrefix, NULL, ZEND_ACC_PUBLIC)
{0, 0, 0}
};