diff -r 26645d81f48d -r cc28652e0254 persistentstorage/sql/SRC/Common/Trace/UTraceSql.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/persistentstorage/sql/SRC/Common/Trace/UTraceSql.cpp Wed Sep 01 12:39:58 2010 +0100 @@ -0,0 +1,217 @@ +// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "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: +// + +#include + +//The file is used only to compile and include in the executable server image only a single +//copy of the trace strings. +#define __SQLTRACE_STRINGS__ +#include "UTraceSql.h" + +#ifdef SYMBIAN_TRACE_SQL_EVENTS + +/** +Get the corresponding string to the IPC function from the TSqlSrvFunction enum + +@param aFunction Function code + +@return A pointer to the string literal associated with the TSqlSrvFunction enum identifiers + +@internalComponent + */ +const TPtrC8 GetIPCFuncStr(TInt aFunction) + { + TInt function = aFunction & 0xFF; + + //Array of Sql Server's IPC functions.This should map to TSqlSrvFunction + const TText8* const KSrvFunctionStr[] = + { + //Test functions + _S8("ESqlSrvTestBase"), //0x00 + _S8("ESqlSrvResourceMark"), //0x01 + _S8("ESqlSrvResourceCheck"), //0x02 + _S8("ESqlSrvResourceCount"), //0x03 + _S8("ESqlSrvSetDbHeapFailure"), //0x04 + _S8("ESqlSrvSetHeapFailure"), //0x05 + + //Profiling functions + _S8("ESqlSrvProfilerStart"), //0x06 + _S8("ESqlSrvProfilerStop"), //0x07 + _S8("ESqlSrvProfilerReset"), //0x08 + _S8("ESqlSrvProfilerSetRange"), //0x09 + _S8("ESqlSrvProfilerQuery"), //0x0A + + //Not Used + _S8(""), //0x0B + _S8(""), //0x0C + _S8(""), //0x0D + _S8(""), //0x0E + _S8(""), //0x0F + + //Database functions + _S8("ESqlSrvDbBase"), //0x10 + _S8("ESqlSrvDbCreate"), //0x11 + _S8("ESqlSrvDbCreateSecure"), //0x12 + _S8("ESqlSrvDbOpen"), //0x13 + _S8("ESqlSrvDbOpenFromHandle"), //0x14 + _S8("ESqlSrvDbClose"), //0x15 + _S8("ESqlSrvDbCopy"), //0x16 + _S8("ESqlSrvDbDelete"), //0x17 + + //All operations with opcode > ESqlSrvDbDelete require valid database object (on the server side) + _S8("ESqlSrvLastErrorMsg"), //0x18 + _S8("ESqlSrvDbExec8"), //0x19 + _S8("ESqlSrvDbExec16"), //0x1A + _S8("ESqlSrvDbRowIdExec16"), //0x1B + _S8("ESqlSrvDbSetIsolationLevel"), //0x1C + _S8("ESqlSrvDbGetSecurityPolicy"), //0x1D + _S8("ESqlSrvDbAttach"), //0x1E + _S8("ESqlSrvDbAttachFromHandle"), //0x1F + _S8("ESqlSrvDbDetach"), //0x20 + _S8("ESqlSrvDbScalarFullSelect8"), //0x21 + _S8("ESqlSrvDbScalarFullSelect16"), //0x22 + _S8("ESqlSrvDbInTransaction"), //0x23 + _S8("ESqlSrvDbSize"), //0x24 + _S8("ESqlSrvDbSize2"), //0x25 + _S8("ESqlSrvDbBlobSource"), //0x26 + _S8("ESqlSrvDbLastInsertedRowId"), //0x27 + _S8("ESqlSrvDbCompact"), //0x28 + + //Database - reserved drive space management + _S8("ESqlSrvDbReserveDriveSpace"), //0x29 + _S8("ESqlSrvDbFreeReservedSpace"), //0x2A + _S8("ESqlSrvDbGetReserveAccess"), //0x2B + _S8("ESqlSrvDbReleaseReserveAccess"), //0x2C + + //Not Used + _S8(""), //0x2D + _S8(""), //0x2E + _S8(""), //0x2F + _S8(""), //0x30 + _S8(""), //0x31 + _S8(""), //0x32 + _S8(""), //0x33 + _S8(""), //0x34 + _S8(""), //0x35 + _S8(""), //0x36 + _S8(""), //0x37 + _S8(""), //0x38 + _S8(""), //0x39 + _S8(""), //0x3A + _S8(""), //0x3B + _S8(""), //0x3C + _S8(""), //0x3D + _S8(""), //0x3E + _S8(""), //0x3F + _S8(""), //0x40 + _S8(""), //0x41 + _S8(""), //0x42 + _S8(""), //0x43 + _S8(""), //0x44 + _S8(""), //0x45 + _S8(""), //0x46 + _S8(""), //0x47 + _S8(""), //0x48 + _S8(""), //0x49 + _S8(""), //0x4A + _S8(""), //0x4B + _S8(""), //0x4C + _S8(""), //0x4D + _S8(""), //0x4E + _S8(""), //0x4F + + //Statement functions + _S8("ESqlSrvStmtBase"), //0x50 + _S8("ESqlSrvStmtPrepare8"), //0x51 + _S8("ESqlSrvStmtPrepare16"), //0x52 + _S8("ESqlSrvStmtClose"), //0x53 + _S8("ESqlSrvStmtReset"), //0x54 + _S8("ESqlSrvStmtExec"), //0x55 + _S8("ESqlSrvStmtAsyncExec"), //0x56 + _S8("ESqlSrvStmtBindExec"), //0x57 + _S8("ESqlSrvStmtBindExecRowId"), //0x58 + _S8("ESqlSrvStmtAsyncBindExec"), //0x59 + _S8("ESqlSrvStmtNext"), //0x5A + _S8("ESqlSrvStmtBindNext"), //0x5B + _S8("ESqlSrvStmtColumnNames"), //0x5C + _S8("ESqlSrvStmtParamNames"), //0x5D + _S8("ESqlSrvStmtColumnSource"), //0x5E + _S8("ESqlSrvStmtBinParamSink"), //0x5F + _S8("ESqlSrvStmtTxtParamSink8"), //0x60 + _S8("ESqlSrvStmtTxtParamSink16"), //0x61 + _S8("ESqlSrvStmtBufFlat"), //0x62 + _S8("ESqlSrvStmtColumnValue"), //0x63 + _S8("ESqlSrvStmtDeclColumnTypes"), //0x64 + _S8("ESqlSrvStmtEvaluateAll"), //0x65 + _S8("ESqlSrvStmtGoto"), //0x66 + + //Not Used + _S8(""), //0x67 + _S8(""), //0x68 + _S8(""), //0x69 + _S8(""), //0x6A + _S8(""), //0x6B + _S8(""), //0x6C + _S8(""), //0x6D + _S8(""), //0x6E + _S8(""), //0x6F + + //Stream functions + _S8("ESqlSrvStreamBase"), //0x70 + _S8("ESqlSrvStreamRead"), //0x71 + _S8("ESqlSrvStreamWrite"), //0x72 + _S8("ESqlSrvStreamSize"), //0x73 + _S8("ESqlSrvStreamSynch"), //0x74 + _S8("ESqlSrvStreamClose") //0x75 + }; + + const TInt KMaxSrvFunctions = sizeof(KSrvFunctionStr) / sizeof(KSrvFunctionStr[0]); + + if (function <= KMaxSrvFunctions) + return KSrvFunctionStr[function]; + else + return _S8("Unknown"); + } +#endif //SYMBIAN_TRACE_SQL_EVENTS + +#ifdef SYMBIAN_TRACE_SQL_FUNC + +/** +Create the TSqlUTraceProfiler object which inserts a UTF trace, used to signal a function entry + +@param aFunctionStr A "const char" pointer describing the function to be profiled. + Currently this is the type signature of the function returned by + the __PRETTY_FUNCTION__ macro. +@param aObj A object pointer used to provide context for the function. + +@internalComponent +*/ +TSqlUTraceProfiler::TSqlUTraceProfiler(const TAny* aObj, const char* aFunctionStr): +iObj(aObj), iFunctionStr(reinterpret_cast(aFunctionStr)) + { + UTF::Printf(UTF::TTraceContext(UTF::ESystemCharacteristicMetrics), KProfilerBegin, &iFunctionStr, iObj); + } + +/** +Destroys TSqlUTraceProfiler object which inserts a UTF trace, used to signal a function exit + +@internalComponent +*/ +TSqlUTraceProfiler::~TSqlUTraceProfiler() + { + UTF::Printf(UTF::TTraceContext(UTF::ESystemCharacteristicMetrics), KProfilerEnd, &iFunctionStr, iObj); + } + +#endif //SYMBIAN_TRACE_SQL_FUNC