blob: 36aeb2b14573851c62825b676a47b61326ce3252 [file] [log] [blame]
// NsisDecode.h
#ifndef __NSIS_DECODE_H
#define __NSIS_DECODE_H
#include "../../IStream.h"
#include "../../Common/CreateCoder.h"
namespace NArchive {
namespace NNsis {
namespace NMethodType
{
enum EEnum
{
kCopy,
kDeflate,
kBZip2,
kLZMA
};
}
class CDecoder
{
NMethodType::EEnum _method;
CMyComPtr<ISequentialInStream> _filterInStream;
CMyComPtr<ISequentialInStream> _codecInStream;
CMyComPtr<ISequentialInStream> _decoderInStream;
public:
void Release()
{
_filterInStream.Release();
_codecInStream.Release();
_decoderInStream.Release();
}
HRESULT Init(
DECL_EXTERNAL_CODECS_LOC_VARS
IInStream *inStream, NMethodType::EEnum method, bool thereIsFilterFlag, bool &useFilter);
HRESULT Read(void *data, size_t *processedSize);
};
}}
#endif