diff options
author | Mark Spruiell <mes@zeroc.com> | 2009-11-04 10:45:58 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2009-11-04 10:45:58 -0800 |
commit | f842b68930c6fc772343509b04542e57d36db583 (patch) | |
tree | e59dd6ecd7c1d98f39c88670e499b0ae5bf001e9 /php/src/IcePHP/Logger.cpp | |
parent | bug 4349 - gcc warning in PythonUtil (diff) | |
download | ice-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.cpp | 33 |
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} }; |