williamr@2: /* williamr@2: * Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@2: * under the terms of the License "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@2: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * ct/logger.h williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file williamr@2: @internalTechnology williamr@2: */ williamr@2: williamr@2: #ifndef __CT_LOGGER_H__ williamr@2: #define __CT_LOGGER_H__ williamr@2: williamr@2: #include <e32std.h> williamr@2: williamr@2: /** williamr@2: * williamr@2: * Defines logging functionality for use by crypto tokens framework and file williamr@2: * tokens server. This is only compiled in debug builds when the macro williamr@2: * __CT_LOGGING__ is defined. williamr@2: * williamr@2: * @internalTechnology williamr@2: */ williamr@2: williamr@2: #if defined(_DEBUG) && defined(__CT_LOGGING__) williamr@2: williamr@2: #define LOG(X) CTLogger::Log(this, (X)) williamr@2: #define LOG1(X, Y) CTLogger::Log(this, (X), (Y)) williamr@2: #define LOG2(X, Y, Z) CTLogger::Log(this, (X), (Y), (Z)) williamr@2: #define LOG_INC_INDENT() CTLogger::UpdateIndent(1) williamr@2: #define LOG_DEC_INDENT() CTLogger::UpdateIndent(-1) williamr@2: williamr@2: #else williamr@2: williamr@2: #define LOG(X) williamr@2: #define LOG1(X, Y) williamr@2: #define LOG2(X, Y, Z) williamr@2: #define LOG_INC_INDENT() williamr@2: #define LOG_DEC_INDENT() williamr@2: williamr@2: #endif williamr@2: williamr@2: /** williamr@2: * Class providing methods used by logging macros. These are not designed to be williamr@2: * called directly. If logging is not turned on they will simply panic. williamr@2: */ williamr@2: class CTLogger williamr@2: { williamr@2: public: williamr@2: IMPORT_C static void Log(TAny* aObject, TRefByValue<const TDesC16> aFmt, ...); williamr@2: IMPORT_C static void UpdateIndent(TInt aInc); williamr@2: private: williamr@2: static void LogL(const TDesC& aString); williamr@2: }; williamr@2: williamr@2: #endif // __CTLOGGER_H__