📄 zlibinstream.h
字号:
/* Copyright (C) 2006 Lucas Gomez All Rights Reserved.
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#ifndef __ZLIBINSTREAM_H__
#define __ZLIBINSTREAM_H__
// INCLUDES
#include <e32base.h>
#include <e32std.h>
#include <EZDecompressor.h>
#include <EZBufman.h>
#include "InStream.h"
// ENUMERATIONS
// CONSTANTS
namespace ZLibConstants
{
const TInt KDefaultBufSize=16384;
}
// CLASS DECLARATION
/**
* ZLibInStream application class.
*/
class ZLibInStream : public InStream, public MEZBufferManager
{
public: // Constructors and destructor
/**
* ~ZLibInStream
* Virtual Destructor.
*/
virtual ~ZLibInStream();
public: // Constructors
/**
* ZLibInStream.
* C++ default constructor.
*/
ZLibInStream(TInt aBufSize=ZLibConstants::KDefaultBufSize);
public: // class methods
void SetUnderlying(InStream* aIS,TInt aBytesIn);
void Reset();
TInt Pos();
TInt Overrun(TInt aItemSize,TInt aNItems);
void Decompress();
/* From MEZBufferManager */
void InitializeL(CEZZStream& aZStream);
void NeedInputL(CEZZStream& aZStream);
void NeedOutputL(CEZZStream& aZStream);
void FinalizeL(CEZZStream& aZStream);
private: // member variables
InStream* iUnderlying;
TInt iBufSize;
TInt iPtrOffset;
CEZDecompressor* iInflater;
TInt iBytesIn;
};
#endif // __ZLIBINSTREAM_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -