aboutsummaryrefslogtreecommitdiff
path: root/CPP/7zip/Compress/CopyCoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'CPP/7zip/Compress/CopyCoder.h')
-rw-r--r--CPP/7zip/Compress/CopyCoder.h49
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
10namespace NCompress {
11
12class 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;
22public:
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
44HRESULT CopyStream(ISequentialInStream *inStream, ISequentialOutStream *outStream, ICompressProgressInfo *progress);
45HRESULT CopyStream_ExactSize(ISequentialInStream *inStream, ISequentialOutStream *outStream, UInt64 size, ICompressProgressInfo *progress);
46
47}
48
49#endif