diff -r 000000000000 -r 08ec8eefde2f loggingservices/eventlogger/LogServ/inc/LogServResourceInterpreter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loggingservices/eventlogger/LogServ/inc/LogServResourceInterpreter.h Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,90 @@ +// Copyright (c) 2002-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: +// + +#ifndef __LOGSERVRESOURCEINTERPRETER_H__ +#define __LOGSERVRESOURCEINTERPRETER_H__ + +#include +#include +#include + +/** +Gives an access to the server resource file and maintains a cache of the retrieved resource entries. + +@internalComponent +*/ +class CLogServResourceInterpreter : public CBase + { +public: + enum TResourceType + { + ELogWrap = 0, + ELogServer + }; + +public: + static CLogServResourceInterpreter* NewL(RFs& aFsSession); + ~CLogServResourceInterpreter(); + void CreateResourceReaderLC(TResourceReader& aReader, TInt aId, TResourceType aType) ;//Create a resource reader for a specific resource entry + +private: + /** + @internalComponent + */ + struct TResourceFileEntry + { + RResourceFile iFile; + TResourceType iType; + }; + + /** + @internalComponent + */ + class CResourceStringCacheEntry : public CBase + { + public: + static CResourceStringCacheEntry* NewL(TInt aResourceId, CLogServResourceInterpreter::TResourceType aResourceType, HBufC8* aResourceString); + ~CResourceStringCacheEntry(); + TUint ResourceId(void) ; + CLogServResourceInterpreter::TResourceType ResourceType(void) ; + HBufC8* ResourceString (void) ; + static TInt Offset(); + + private: + CResourceStringCacheEntry (TInt aResourceId, CLogServResourceInterpreter::TResourceType aType, HBufC8* aResourceString); + + private : + TSglQueLink iLink; + TUint iResourceId ; + CLogServResourceInterpreter::TResourceType iResourceType ; + HBufC8* iResourceString ; + }; + + CLogServResourceInterpreter(RFs& aFsSession); + void ConstructL(); + void LoadResourceFileL(const TDesC& aName, TResourceType aType); + const RResourceFile& ResourceFileForType(TResourceType aType) const; + CResourceStringCacheEntry* FindCachedResourceString(const TInt aId, TResourceType aType) ; + HBufC8* GetResourceBufferL(TInt aId, TResourceType aType) ; + +private: + RFs& iFsSession; + RArray iResourceFiles; + //Used to cache strings read from resource file + TSglQue iResourceStringCache; + TSglQueIter iResourceStringCacheIter; + }; + +#endif