diff options
author | Joe George <joe@zeroc.com> | 2016-02-12 11:10:28 -0500 |
---|---|---|
committer | Joe George <joe@zeroc.com> | 2016-02-12 11:10:28 -0500 |
commit | 70fcaab8e9566edd7d749b1f6e3147e0efdbe94d (patch) | |
tree | 6f043cce81cf206a9ac7f1ff2fc4349a80aa23c3 /php/src/IcePHP/Logger.cpp | |
parent | minor fixes to stream classes; restoring test/Ice/stream (diff) | |
download | ice-70fcaab8e9566edd7d749b1f6e3147e0efdbe94d.tar.bz2 ice-70fcaab8e9566edd7d749b1f6e3147e0efdbe94d.tar.xz ice-70fcaab8e9566edd7d749b1f6e3147e0efdbe94d.zip |
ICE-6973 - Add support for PHP 7
Diffstat (limited to 'php/src/IcePHP/Logger.cpp')
-rw-r--r-- | php/src/IcePHP/Logger.cpp | 325 |
1 files changed, 0 insertions, 325 deletions
diff --git a/php/src/IcePHP/Logger.cpp b/php/src/IcePHP/Logger.cpp deleted file mode 100644 index 3972f758e11..00000000000 --- a/php/src/IcePHP/Logger.cpp +++ /dev/null @@ -1,325 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#include <Logger.h> -#include <Util.h> - -using namespace std; -using namespace IcePHP; - -ZEND_EXTERN_MODULE_GLOBALS(ice) - -// -// Class entries represent the PHP class implementations we have registered. -// -namespace IcePHP -{ -zend_class_entry* loggerClassEntry = 0; -} - -// -// Logger support. -// -static zend_object_handlers _loggerHandlers; - -extern "C" -{ -static zend_object_value handleAlloc(zend_class_entry* TSRMLS_DC); -static void handleFreeStorage(void* TSRMLS_DC); -static zend_object_value handleClone(zval* TSRMLS_DC); -} - -ZEND_METHOD(Ice_Logger, __construct) -{ - runtimeError("logger objects cannot be instantiated" TSRMLS_CC); -} - -ZEND_METHOD(Ice_Logger, __toString) -{ - if(ZEND_NUM_ARGS() > 0) - { - WRONG_PARAM_COUNT; - } - - RETURN_NULL(); -} - -ZEND_METHOD(Ice_Logger, print) -{ - char* m; - int mLen; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char*>("s"), &m, &mLen) == FAILURE) - { - RETURN_NULL(); - } - - Ice::LoggerPtr _this = Wrapper<Ice::LoggerPtr>::value(getThis() TSRMLS_CC); - assert(_this); - - string msg(m, mLen); - try - { - _this->print(msg); - } - catch(const IceUtil::Exception& ex) - { - throwException(ex TSRMLS_CC); - RETURN_NULL(); - } -} - -ZEND_METHOD(Ice_Logger, trace) -{ - char* c; - int cLen; - char* m; - int mLen; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char*>("ss"), &c, &cLen, &m, &mLen) == FAILURE) - { - RETURN_NULL(); - } - - Ice::LoggerPtr _this = Wrapper<Ice::LoggerPtr>::value(getThis() TSRMLS_CC); - assert(_this); - - string category(c, cLen); - string msg(m, mLen); - try - { - _this->trace(category, msg); - } - catch(const IceUtil::Exception& ex) - { - throwException(ex TSRMLS_CC); - RETURN_NULL(); - } -} - -ZEND_METHOD(Ice_Logger, warning) -{ - char* m; - int mLen; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char*>("s"), &m, &mLen) == FAILURE) - { - RETURN_NULL(); - } - - Ice::LoggerPtr _this = Wrapper<Ice::LoggerPtr>::value(getThis() TSRMLS_CC); - assert(_this); - - string msg(m, mLen); - try - { - _this->warning(msg); - } - catch(const IceUtil::Exception& ex) - { - throwException(ex TSRMLS_CC); - RETURN_NULL(); - } -} - -ZEND_METHOD(Ice_Logger, error) -{ - char* m; - int mLen; - - if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char*>("s"), &m, &mLen) == FAILURE) - { - RETURN_NULL(); - } - - Ice::LoggerPtr _this = Wrapper<Ice::LoggerPtr>::value(getThis() TSRMLS_CC); - assert(_this); - - string msg(m, mLen); - try - { - _this->error(msg); - } - catch(const IceUtil::Exception& ex) - { - throwException(ex TSRMLS_CC); - RETURN_NULL(); - } -} - -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 -static zend_object_value -handleAlloc(zend_class_entry* ce TSRMLS_DC) -{ - zend_object_value result; - - Wrapper<Ice::LoggerPtr>* obj = Wrapper<Ice::LoggerPtr>::create(ce TSRMLS_CC); - assert(obj); - - result.handle = zend_objects_store_put(obj, 0, (zend_objects_free_object_storage_t)handleFreeStorage, 0 TSRMLS_CC); - result.handlers = &_loggerHandlers; - - return result; -} - -#ifdef _WIN32 -extern "C" -#endif -static void -handleFreeStorage(void* p TSRMLS_DC) -{ - Wrapper<Ice::LoggerPtr>* obj = static_cast<Wrapper<Ice::LoggerPtr>*>(p); - delete obj->ptr; - zend_object_std_dtor(static_cast<zend_object*>(p) TSRMLS_CC); - efree(p); -} - -#ifdef _WIN32 -extern "C" -#endif -static zend_object_value -handleClone(zval* zv TSRMLS_DC) -{ - php_error_docref(0 TSRMLS_CC, E_ERROR, "loggers cannot be cloned"); - return zend_object_value(); -} - -// -// Necessary to suppress warnings from zend_function_entry in php-5.2. -// -#if defined(__GNUC__) -# pragma GCC diagnostic ignored "-Wwrite-strings" -#endif - -// -// Predefined methods for Logger. -// -static zend_function_entry _interfaceMethods[] = -{ - {0, 0, 0} -}; -static zend_function_entry _classMethods[] = -{ - ZEND_ME(Ice_Logger, __construct, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_CTOR) - ZEND_ME(Ice_Logger, __toString, NULL, ZEND_ACC_PUBLIC) - ZEND_ME(Ice_Logger, print, NULL, ZEND_ACC_PUBLIC) - 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} -}; -// -// enable warning again -// -#if defined(__GNUC__) -# pragma GCC diagnostic error "-Wwrite-strings" -#endif - -bool -IcePHP::loggerInit(TSRMLS_D) -{ - // - // We register an interface and a class that implements the interface. This allows - // applications to safely include the Slice-generated code for the type. - // - - // - // Register the Logger interface. - // - zend_class_entry ce; -#ifdef ICEPHP_USE_NAMESPACES - INIT_NS_CLASS_ENTRY(ce, "Ice", "Logger", _interfaceMethods); -#else - INIT_CLASS_ENTRY(ce, "Ice_Logger", _interfaceMethods); -#endif - zend_class_entry* interface = zend_register_internal_interface(&ce TSRMLS_CC); - - // - // Register the Logger class. - // - INIT_CLASS_ENTRY(ce, "IcePHP_Logger", _classMethods); - ce.create_object = handleAlloc; - loggerClassEntry = zend_register_internal_class(&ce TSRMLS_CC); - memcpy(&_loggerHandlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); - _loggerHandlers.clone_obj = handleClone; - zend_class_implements(loggerClassEntry TSRMLS_CC, 1, interface); - - return true; -} - -bool -IcePHP::createLogger(zval* zv, const Ice::LoggerPtr& p TSRMLS_DC) -{ - if(object_init_ex(zv, loggerClassEntry) != SUCCESS) - { - runtimeError("unable to initialize logger object" TSRMLS_CC); - return false; - } - - Wrapper<Ice::LoggerPtr>* obj = Wrapper<Ice::LoggerPtr>::extract(zv TSRMLS_CC); - assert(!obj->ptr); - obj->ptr = new Ice::LoggerPtr(p); - - return true; -} - -bool -IcePHP::fetchLogger(zval* zv, Ice::LoggerPtr& p TSRMLS_DC) -{ - if(!ZVAL_IS_NULL(zv)) - { - if(Z_TYPE_P(zv) != IS_OBJECT || Z_OBJCE_P(zv) != loggerClassEntry) - { - invalidArgument("value is not a logger object" TSRMLS_CC); - return false; - } - p = Wrapper<Ice::LoggerPtr>::value(zv TSRMLS_CC); - if(!p) - { - runtimeError("unable to retrieve logger object from object store" TSRMLS_CC); - return false; - } - } - return true; -} |