diff -r 5cc91383ab1e -r 7333d7932ef7 secureswitools/swisistools/source/rscparser/barsread2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/secureswitools/swisistools/source/rscparser/barsread2.h Tue Aug 31 15:21:33 2010 +0300 @@ -0,0 +1,89 @@ +// 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: +// +/** +* @file barsread2.h +* +* @internalComponent +* @released +*/ +#ifndef __BARSREAD2_H__ +#define __BARSREAD2_H__ + +#include "commontypes.h" + +//Forward declarations +class TResourceReaderImpl; +class CResourceFile; + +/** Interprets resource data read from a resource file. + +To use an instance of this class, pass the CResourceFile object containing the resource +data with aResourceId ID to it, by calling OpenL() or OpenLC(). Close the reader +calling Close() after finishing with the resource. + +The current position within the buffer is always maintained and any request +for data is always supplied from the current position. The current position +is always updated . + +Expected behaviour when assignment operator or copy constructor is called: +The class doesn't have assignment operator and copy constructor, so the compiler generated +ones will be used. The buffer used by the source class instance will be shared with the +destination class instance. However source and destination instances will have their own +current position pointers, both pointed initially to the same buffer position. + +@publishedAll +@released +@see CResourceFile */ +class RResourceReader + { +public: + RResourceReader(); + ~RResourceReader(); + void OpenL(CResourceFile* aRscFile, TInt aResourceId); + void Close(); + + // Read counted strings into allocated buffer + Ptr16* ReadHBufCL(); + + // Build pointer from a counted string + PtrC16* ReadTPtrCL(); + PtrC8* ReadTPtrC8L(); + PtrC16* ReadTPtrC16L(); + + TInt ReadInt8L(); + TUint32 ReadUint8L(); + TInt ReadInt16L(); + TInt ReadInt32L(); + TUint32 ReadUint32L(); + + void ReadL(TAny* aPtr,TInt aLength); + +private: + TResourceReaderImpl* Impl(); + const TResourceReaderImpl* Impl() const; +private: + //Size of the RResourceReader implementation. + //It should be 12 because of the BC reasons. + //That's the size of the implementation class, + //which implements TResourceReader functionality too. + enum + { + KRsReaderSize = 8 + }; + TUint8 iImpl[KRsReaderSize]; + Ptr8* iRscBuffer; + }; + +#endif//__BARSREAD2_H__ \ No newline at end of file