diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/pcstore/storereadstream.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/pcstore/storereadstream.h Wed Mar 31 12:33:34 2010 +0100 @@ -0,0 +1,105 @@ +// Copyright (c) 2006-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: +// + +#if !defined(__STOREREADSTREAM_H__) +#define __STOREREADSTREAM_H__ + +#include +#include + +namespace PCStore +{ +class CDes8; +class CDes16; +class CFileStreamBuf; +class TStreamId; +class TUid; + +/** +@internalAll + +A read stream class to internalize data from a Store file. + +By eventually calling CFileStreamBuf's read function, it implements the internalization of +the following data types: + TInt8 + TUint8 + TInt16 + TUint16 + TInt32 + TUint32 + TInt64 + TUint64 + TReal32 + TReal64 + TUint8* + TUint16* + CDes8 + CDes16 + +After instantiated, it must be opened on a read-moded CDirectFileStore object to internalize data. +It must be closed or destroyed before another stream is opened on the same CDirectFileStore object. + +@see CDirectFileStore +@see CStoreWriteStream +*/ +class CStoreReadStream + { +public: + CStoreReadStream(CFileStreamBuf& aStreamBuf, TStreamId aId); + ~CStoreReadStream(); + void Read(TUint8* aPtr, TInt aLength); + void Read(TUint16* aPtr, TInt aLength); + TInt8 ReadInt8(); + TUint8 ReadUint8(); + TInt16 ReadInt16(); + TUint16 ReadUint16(); + TInt32 ReadInt32(); + TUint32 ReadUint32(); + TInt64 ReadInt64(); + TUint64 ReadUint64(); + TReal32 ReadReal32(); + TReal64 ReadReal64(); + void Read(CDes8& aDes); + void Read(CDes8& aDes, TInt aLength); + void Read(CDes16& aDes); + void Read(CDes16& aDes, TInt aLength); + +private: + CStoreReadStream(const CStoreReadStream& aStream); + CStoreReadStream& operator=(const CStoreReadStream& aStream); + +private: + CFileStreamBuf& iSrc; + }; + + +// Operators on the read stream and data types +CStoreReadStream& operator>>(CStoreReadStream& aStream, TStreamId& aId); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TInt8& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TUint8& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TInt16& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TUint16& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TInt32& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TUint32& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TInt64& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TUint64& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TReal32& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TReal64& aVal); +CStoreReadStream& operator>>(CStoreReadStream& aStream, CDes8& aDes); +CStoreReadStream& operator>>(CStoreReadStream& aStream, CDes16& aDes); +CStoreReadStream& operator>>(CStoreReadStream& aStream, TUid& aUid); +} +#endif // !defined(__STOREREADSTREAM_H__)