diff -r 000000000000 -r 7f656887cf89 commands/chkdeps/sf_decomp.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commands/chkdeps/sf_decomp.cpp Wed Jun 23 15:52:26 2010 +0100 @@ -0,0 +1,52 @@ +// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "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: +// f32\sfile\sf_decomp.cpp +// +// + +#include "sf_deflate.h" +#include +#include + + +TFileInput::TFileInput(RFile& aFile) + :iFile(aFile),iReadBuf(iBuf1),iPtr(iBuf1,KBufSize) + { + // issue first read + aFile.Read(iPtr,iStat); + } + +void TFileInput::Cancel() + { + // absorb signal if outstanding request + if (iReadBuf) + User::WaitForRequest(iStat); + } + +void TFileInput::UnderflowL() + { + TUint8* b=iReadBuf; + ASSERT(b!=NULL); + User::WaitForRequest(iStat); + iReadBuf=0; + User::LeaveIfError(iStat.Int()); + if(iPtr.Length()==0) + User::Leave(KErrCorrupt); + Set(b,iPtr.Length()*8); + // start reading to the next buffer + b = b==iBuf1 ? iBuf2 : iBuf1; + iPtr.Set(b,0,KBufSize); + iFile.Read(iPtr,iStat); + iReadBuf=b; + }