williamr@4: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@4: // All rights reserved. williamr@4: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@4: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: // williamr@4: // Initial Contributors: williamr@4: // Nokia Corporation - initial contribution. williamr@4: // williamr@4: // Contributors: williamr@4: // williamr@4: // Description: williamr@4: // williamr@4: williamr@4: williamr@4: #if !defined(__STOREWRITESTREAM_H__) williamr@4: #define __STOREWRITESTREAM_H__ williamr@4: williamr@4: #include williamr@4: #include williamr@4: williamr@4: namespace PCStore williamr@4: { williamr@4: class CDes8; williamr@4: class CDes16; williamr@4: class CFileStreamBuf; williamr@4: class TStreamId; williamr@4: class TUid; williamr@4: williamr@4: /** williamr@4: @internalAll williamr@4: williamr@4: A write stream class to externalize data to a Store file. williamr@4: williamr@4: By eventually calling CFileStreamBuf's write function, it implements the externalization of williamr@4: the following data types: williamr@4: TInt8 williamr@4: TUint8 williamr@4: TInt16 williamr@4: TUint16 williamr@4: TInt32 williamr@4: TUint32 williamr@4: TInt64 williamr@4: TUint64 williamr@4: TReal32 williamr@4: TReal64 williamr@4: TUint8* williamr@4: TUint16* williamr@4: CDes8 williamr@4: CDes16 williamr@4: williamr@4: After instantiated, it must be opened on a write-moded CDirectFileStore object to externalize data. williamr@4: It must be closed or destroyed before another stream is opened on the same CDirectFileStore object. williamr@4: williamr@4: @see CDirectFileStore williamr@4: @see CStoreReadStream williamr@4: */ williamr@4: class CStoreWriteStream williamr@4: { williamr@4: public: williamr@4: CStoreWriteStream(CFileStreamBuf& aStreamBuf, TStreamId aId); williamr@4: ~CStoreWriteStream(); williamr@4: void Write(const TUint8* aPtr, TInt aLength); williamr@4: void Write(const TUint16* aPtr, TInt aLength); williamr@4: void WriteInt8(TInt8 aValue); williamr@4: void WriteUint8(TUint8 aValue); williamr@4: void WriteInt16(TInt16 aValue); williamr@4: void WriteUint16(TUint16 aValue); williamr@4: void WriteInt32(TInt32 aValue); williamr@4: void WriteUint32(TUint32 aValue); williamr@4: void WriteInt64(TInt64 aValue); williamr@4: void WriteUint64(TUint64 aValue); williamr@4: void WriteReal32(TReal32 aValue); williamr@4: void WriteReal64(TReal64 aValue); williamr@4: void Write(const CDes8& aDes); williamr@4: void Write(const CDes8& aDes, TInt aLength); williamr@4: void Write(const CDes16& aDes); williamr@4: void Write(const CDes16& aDes, TInt aLength); williamr@4: williamr@4: private: williamr@4: CStoreWriteStream(const CStoreWriteStream& aStream); williamr@4: CStoreWriteStream& operator=(const CStoreWriteStream& aStream); williamr@4: williamr@4: private: williamr@4: CFileStreamBuf& iSnk; williamr@4: }; williamr@4: williamr@4: // Operators on the write stream and data types williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TStreamId& aId); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TInt8 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TUint8 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TInt16 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TUint16 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TInt32 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TUint32 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TInt64 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TUint64 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TReal32 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TReal64 aVal); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const CDes8& aDes); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const CDes16& aDes); williamr@4: CStoreWriteStream& operator<<(CStoreWriteStream& aStream,const TUid& aUid); williamr@4: } williamr@4: #endif // !defined(__STOREWRITESTREAM_H__)