diff -r 000000000000 -r dfb7c4ff071f commsfwsupport/commselements/serverden/src/sd_log.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsfwsupport/commselements/serverden/src/sd_log.cpp Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,141 @@ +// Copyright (c) 2008-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 "sd_log.h" +#include "sd_apiextensionipc.h" + +#include + +using namespace Den; + +EXPORT_C void Logging::Printf( +#ifdef SYMBIAN_TRACE_ENABLE + TInt aWorkerId, const TDesC8& aSubTag, TRefByValue aFmt, ...) +#else + TInt, const TDesC8&, TRefByValue, ...) +#endif //#ifdef SYMBIAN_TRACE_ENABLE + { +#ifdef SYMBIAN_TRACE_ENABLE + VA_LIST list; + VA_START(list,aFmt); + Printf(aWorkerId, aSubTag, Logging::ELogInfo, aFmt, list); + VA_END(list); +#endif //#ifdef SYMBIAN_TRACE_ENABLE + } + +EXPORT_C void Logging::Printf( +#ifdef SYMBIAN_TRACE_ENABLE + TInt aWorkerId, const TDesC8& aSubTag, TLogEntryType aType, TRefByValue aFmt, ...) +#else + TInt, const TDesC8&, TLogEntryType, TRefByValue, ...) +#endif //#ifdef SYMBIAN_TRACE_ENABLE + { +#ifdef SYMBIAN_TRACE_ENABLE + VA_LIST list; + VA_START(list,aFmt); + Printf(aWorkerId, aSubTag, aType, aFmt, list); + VA_END(list); +#endif //#ifdef SYMBIAN_TRACE_ENABLE + } + +EXPORT_C void Logging::Printf( +#ifdef SYMBIAN_TRACE_ENABLE + TInt aWorkerId, const TDesC8& /*aSubTag*/, TLogEntryType aType, TRefByValue aFmt, VA_LIST& aList) +#else + TInt, const TDesC8&, TLogEntryType, TRefByValue, VA_LIST&) +#endif //#ifdef SYMBIAN_TRACE_ENABLE +/** +Write a mulitple argument list to the log, trapping and ignoring any leave + +*/ + { +#ifdef SYMBIAN_TRACE_ENABLE + TLogTextBuf buf; + _LIT8(KWorkerIdFormat, "W%d: "); + buf.Format(KWorkerIdFormat, aWorkerId); + buf.AppendFormatIgnoreOverflow(aFmt, aList); + UTracePfAny(KPrimaryFilter, aType, ETrue, EFalse, buf.Length(), buf.Ptr(), buf.Length()); +#endif //#ifdef SYMBIAN_TRACE_ENABLE + } + +const TText8* Logging::IPCMessName(TInt aMess) +/** +Write a mulitple argument list to the log, trapping and ignoring any leave +*/ + { + switch(aMess) + { + /*case RootServer::ESSNumProtocols: return _S8("ESSNumProtocols"); + + */ + + case EIpcSubSessionApiExtIfaceOpen: return _S8("EIpcSubSessionApiExtIfaceOpen"); + case EIpcSubSessionApiExtIfaceSend: return _S8("EIpcSubSessionApiExtIfaceSend"); + case EIpcSubSessionApiExtIfaceSendReceive: return _S8("EIpcSubSessionApiExtIfaceSendReceive"); + case EIpcSubSessionApiExtIfaceClose: return _S8("EIpcSubSessionApiExtIfaceClose"); + case EIpcSessionApiExtIfaceOpen: return _S8("EIpcSessionApiExtIfaceOpen"); + case EIpcSessionApiExtIfaceSend: return _S8("EIpcSessionApiExtIfaceSend"); + case EIpcSessionApiExtIfaceSendReceive: return _S8("EIpcSessionApiExtIfaceSendReceive"); + case EIpcSessionApiExtIfaceClose: return _S8("EIpcSessionApiExtIfaceClose"); + + case RootServer::RSIsCallerConfigurator: return _S8("RSIsCallerConfigurator"); + case RootServer::RSLoadModule: return _S8("RSLoadModule"); + case RootServer::RSUnloadModule: return _S8("RSUnloadModule"); + case RootServer::RSBind: return _S8("RSBind"); + case RootServer::RSUnbind: return _S8("RSUnbind"); + case RootServer::RSGetModuleInfo: return _S8("RSGetModuleInfo"); + case RootServer::RSEnumerateModules: return _S8("RSEnumerateModules"); + case RootServer::RSEnumerateSubModules: return _S8("RSEnumerateSubModules"); + case RootServer::RSEnumerateBindings: return _S8("RSEnumerateBindings"); + case RootServer::RSCancelLoadModule: return _S8("RSCancelLoadModule"); + case RootServer::RSCancelUnloadModule: return _S8("RSCancelUnloadModule"); + case RootServer::RSCancelBind: return _S8("RSCancelBind"); + case RootServer::RSCancelUnbind: return _S8("RSCancelUnbind"); + case RootServer::RSCloseSession: return _S8("RSCloseSession"); + case RootServer::RSShutdown: return _S8("RSShutdown"); + case RootServer::RSSendMessage: return _S8("RSSendMessage"); + case RootServer::RSDbgMarkHeap: return _S8("RSDbgMarkHeap"); + case RootServer::RSDbgCheckHeap: return _S8("RSDbgCheckHeap"); + case RootServer::RSDbgMarkEnd: return _S8("RSDbgMarkEnd"); + case RootServer::RSDbgFailNext: return _S8("RSDbgFailNext"); + + default: + break; +// __DEBUGGER(); + + /* Don't panic, do read on - you've hit this breakpoint because + aMess has no helpful explananatory text for logging. Almost certainly + this means an IPC function was added without updating this switch. Do + it now and make the world very slightly better! + */ + } + return _S8("Unknown"); // unknown + } + +void Logging::IPCMessName(TInt aMessNum, TDes8& aMessBuf) + { + const TText8* mess = IPCMessName(aMessNum); + if (mess == NULL) + { + _LIT8(KUnknown, "IPC %d (UNKNOWN NAME - edit IPCMessName())"); + aMessBuf.Format(KUnknown(), aMessNum); + } + else + { + aMessBuf.Copy(mess); + } + } + +