Imported Upstream version 9.20
[platform/upstream/7zip.git] / CPP / 7zip / Compress / Lzx86Converter.h
1 // Lzx86Converter.h\r
2 \r
3 #ifndef __LZX_86_CONVERTER_H\r
4 #define __LZX_86_CONVERTER_H\r
5 \r
6 #include "../../Common/MyCom.h"\r
7 \r
8 #include "../IStream.h"\r
9 \r
10 namespace NCompress {\r
11 namespace NLzx {\r
12 \r
13 const int kUncompressedBlockSize = 1 << 15;\r
14 \r
15 class Cx86ConvertOutStream:\r
16   public ISequentialOutStream,\r
17   public CMyUnknownImp\r
18 {\r
19   CMyComPtr<ISequentialOutStream> m_Stream;\r
20   UInt32 m_ProcessedSize;\r
21   UInt32 m_Pos;\r
22   UInt32 m_TranslationSize;\r
23   bool m_TranslationMode;\r
24   Byte m_Buffer[kUncompressedBlockSize];\r
25 \r
26   void MakeTranslation();\r
27 public:\r
28   void SetStream(ISequentialOutStream *outStream) { m_Stream = outStream; }\r
29   void ReleaseStream() { m_Stream.Release(); }\r
30   void Init(bool translationMode, UInt32 translationSize)\r
31   {\r
32     m_TranslationMode = translationMode;\r
33     m_TranslationSize = translationSize;\r
34     m_ProcessedSize = 0;\r
35     m_Pos = 0;\r
36   }\r
37   HRESULT Flush();\r
38 \r
39   MY_UNKNOWN_IMP\r
40 \r
41   STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize);\r
42 };\r
43 \r
44 }}\r
45 \r
46 #endif\r