sl@0: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include "readers.h" sl@0: sl@0: // Descriptors support a maximum of 2^28 bytes. sl@0: // The highest 4 bits are used for other purposes. sl@0: static const TInt KMaxDesLen = (2 << 28) - 1; sl@0: static const TInt KMinDesLen = -(2 << 28); sl@0: sl@0: // sl@0: // sl@0: // sl@0: CBufferReader::CBufferReader(const TDesC8& aBuffer) sl@0: : CReader(aBuffer, CReader::EBuffer) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // sl@0: // sl@0: CBufferReader::CBufferReader(const TDesC8& aBuffer, TReaderType aType) sl@0: : CReader(aBuffer, aType) sl@0: { sl@0: } sl@0: sl@0: // sl@0: // sl@0: // sl@0: CBufferReader::~CBufferReader() sl@0: { sl@0: } sl@0: sl@0: // sl@0: // sl@0: // sl@0: CBufferReader* CBufferReader::NewLC(const TDesC8& aBuffer) sl@0: { sl@0: CBufferReader* self = new(ELeave) CBufferReader(aBuffer); sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(); sl@0: return self; sl@0: } sl@0: sl@0: // sl@0: // sl@0: // sl@0: void CBufferReader::ConstructL() sl@0: { sl@0: } sl@0: sl@0: // sl@0: // sl@0: // sl@0: void CBufferReader::Reset() sl@0: { sl@0: CReader::Reset(); sl@0: } sl@0: sl@0: // sl@0: // sl@0: // sl@0: void CBufferReader::SeekL(TInt64 aOffset) sl@0: { sl@0: // Symbian OS descriptors support a maximum size of 2^28 bytes. sl@0: if (aOffset > (TInt64)KMaxDesLen) sl@0: { sl@0: User::Leave(KErrNotSupported); sl@0: } sl@0: sl@0: if (aOffset < (TInt64)KMinDesLen) sl@0: { sl@0: User::Leave(KErrNotSupported); sl@0: } sl@0: sl@0: TInt low = (TInt)I64LOW(aOffset); sl@0: SeekL(low); sl@0: } sl@0: sl@0: // sl@0: // sl@0: // sl@0: void CBufferReader::SeekL(TInt aOffset) sl@0: { sl@0: User::LeaveIfError(CReader::Seek(aOffset)); sl@0: } sl@0: