diff options
Diffstat (limited to 'python/modules/IcePy/Logger.h')
-rw-r--r-- | python/modules/IcePy/Logger.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/python/modules/IcePy/Logger.h b/python/modules/IcePy/Logger.h new file mode 100644 index 00000000000..5e8b15a9daa --- /dev/null +++ b/python/modules/IcePy/Logger.h @@ -0,0 +1,57 @@ +// ********************************************************************** +// +// 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. +// +// ********************************************************************** + +#ifndef ICEPY_LOGGER_H +#define ICEPY_LOGGER_H + +#include <Config.h> +#include <Util.h> +#include <Ice/Logger.h> + +namespace IcePy +{ + +// +// LoggerWrapper delegates to a Python implementation. +// +class LoggerWrapper : public Ice::Logger +{ +public: + + LoggerWrapper(PyObject*); + + virtual void print(const std::string&); + virtual void trace(const std::string&, const std::string&); + virtual void warning(const std::string&); + virtual void error(const std::string&); + virtual std::string getPrefix(); + virtual Ice::LoggerPtr cloneWithPrefix(const std::string&); + PyObject* getObject(); + +private: + + PyObjectHandle _logger; +}; +typedef IceUtil::Handle<LoggerWrapper> LoggerWrapperPtr; + +bool initLogger(PyObject*); + +void cleanupLogger(); + +// +// Create a Python object that delegates to a C++ implementation. +// +PyObject* createLogger(const Ice::LoggerPtr&); + +} + +extern "C" PyObject* IcePy_getProcessLogger(PyObject*); +extern "C" PyObject* IcePy_setProcessLogger(PyObject*, PyObject*); + +#endif |