diff options
Diffstat (limited to 'CPP/7zip/Compress/CopyCoder.h')
-rw-r--r-- | CPP/7zip/Compress/CopyCoder.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/CPP/7zip/Compress/CopyCoder.h b/CPP/7zip/Compress/CopyCoder.h new file mode 100644 index 0000000..a9d0b6d --- /dev/null +++ b/CPP/7zip/Compress/CopyCoder.h | |||
@@ -0,0 +1,49 @@ | |||
1 | // Compress/CopyCoder.h | ||
2 | |||
3 | #ifndef __COMPRESS_COPY_CODER_H | ||
4 | #define __COMPRESS_COPY_CODER_H | ||
5 | |||
6 | #include "../../Common/MyCom.h" | ||
7 | |||
8 | #include "../ICoder.h" | ||
9 | |||
10 | namespace NCompress { | ||
11 | |||
12 | class CCopyCoder: | ||
13 | public ICompressCoder, | ||
14 | public ICompressSetInStream, | ||
15 | public ISequentialInStream, | ||
16 | public ICompressSetFinishMode, | ||
17 | public ICompressGetInStreamProcessedSize, | ||
18 | public CMyUnknownImp | ||
19 | { | ||
20 | Byte *_buf; | ||
21 | CMyComPtr<ISequentialInStream> _inStream; | ||
22 | public: | ||
23 | UInt64 TotalSize; | ||
24 | |||
25 | CCopyCoder(): _buf(0), TotalSize(0) {}; | ||
26 | ~CCopyCoder(); | ||
27 | |||
28 | MY_UNKNOWN_IMP5( | ||
29 | ICompressCoder, | ||
30 | ICompressSetInStream, | ||
31 | ISequentialInStream, | ||
32 | ICompressSetFinishMode, | ||
33 | ICompressGetInStreamProcessedSize) | ||
34 | |||
35 | STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream, | ||
36 | const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress); | ||
37 | STDMETHOD(SetInStream)(ISequentialInStream *inStream); | ||
38 | STDMETHOD(ReleaseInStream)(); | ||
39 | STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize); | ||
40 | STDMETHOD(SetFinishMode)(UInt32 finishMode); | ||
41 | STDMETHOD(GetInStreamProcessedSize)(UInt64 *value); | ||
42 | }; | ||
43 | |||
44 | HRESULT CopyStream(ISequentialInStream *inStream, ISequentialOutStream *outStream, ICompressProgressInfo *progress); | ||
45 | HRESULT CopyStream_ExactSize(ISequentialInStream *inStream, ISequentialOutStream *outStream, UInt64 size, ICompressProgressInfo *progress); | ||
46 | |||
47 | } | ||
48 | |||
49 | #endif | ||