diff -r 000000000000 -r ba25891c3a9e secureswitools/swisistools/source/interpretsislib/logger.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/interpretsislib/logger.h Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +/** + @file LOGGER.H + @publishedPartner + @released +*/ +#ifndef LOGGER_H +#define LOGGER_H + +#include + +enum WarnLevel + { + WARN_OFF, + WARN_ERROR, + WARN_WARN, + WARN_INFO + }; + + +struct LoggerImpl; + +/** + * Logger class to log messages from the system. + */ +class Logger +{ +public: + /** + * Function will set the minimum warning level. + * Messages having warning level greated than this + * won't be printed. Check WarnLevel for details. + */ + static bool SetLevel(WarnLevel aLev); + /** + * Set the stream to which the mssage should be written. + */ + static bool SetStream(std::wostream& aOs); + /** + * Get a reference to the stream. + */ + static std::wostream& Stream(); + /** + * Checks whether a warning level is allowed to print or not. + * @param aLev level at which the message should be printed. + */ + static bool ShouldPrint(WarnLevel aLev); + +private: + static LoggerImpl& Logger::Impl(); + + static LoggerImpl* iLogger; +}; + +/** + * Helper macro to print infom messages + */ +#define LINFO(x) if (Logger::ShouldPrint(WARN_INFO)) { Logger::Stream() << L"INFO: " << x << std::endl; } +/** + * Helper macro to print warning messages + */ +#define LWARN(x) if (Logger::ShouldPrint(WARN_WARN)) { Logger::Stream() << L"WARN: " << x << std::endl; } +/** + * Helper macro to print error messages + */ +#define LERROR(x) if (Logger::ShouldPrint(WARN_ERROR)){ Logger::Stream() << L"ERR : " << x << std::endl; } + +#endif /* LOGGER_H */