view src/win32/7zip/7z/CPP/7zip/Archive/BZip2/BZip2Handler.h @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
line wrap: on
line source
1 // BZip2/Handler.h
3 #ifndef __BZIP2_HANDLER_H
4 #define __BZIP2_HANDLER_H
6 #include "Common/MyCom.h"
7 #include "../IArchive.h"
8 #include "../../Common/CreateCoder.h"
9 #include "BZip2Item.h"
11 #ifdef COMPRESS_MT
12 #include "../../../Windows/System.h"
13 #endif
15 namespace NArchive {
16 namespace NBZip2 {
18 class CHandler:
19 public IInArchive,
20 public IOutArchive,
21 public ISetProperties,
22 PUBLIC_ISetCompressCodecsInfo
23 public CMyUnknownImp
24 {
25 CMyComPtr<IInStream> _stream;
26 NArchive::NBZip2::CItem _item;
27 UInt64 _streamStartPosition;
29 UInt32 _level;
30 UInt32 _dicSize;
31 UInt32 _numPasses;
32 #ifdef COMPRESS_MT
33 UInt32 _numThreads;
34 #endif
36 DECL_EXTERNAL_CODECS_VARS
38 void InitMethodProperties()
39 {
40 _level = 5;
41 _dicSize =
42 _numPasses = 0xFFFFFFFF;
43 #ifdef COMPRESS_MT
44 _numThreads = NWindows::NSystem::GetNumberOfProcessors();;
45 #endif
46 }
48 public:
49 MY_QUERYINTERFACE_BEGIN2(IInArchive)
50 MY_QUERYINTERFACE_ENTRY(IOutArchive)
51 MY_QUERYINTERFACE_ENTRY(ISetProperties)
52 QUERY_ENTRY_ISetCompressCodecsInfo
53 MY_QUERYINTERFACE_END
54 MY_ADDREF_RELEASE
56 INTERFACE_IInArchive(;)
57 #ifndef EXTRACT_ONLY
58 INTERFACE_IOutArchive(;)
60 STDMETHOD(SetProperties)(const wchar_t **names, const PROPVARIANT *values, Int32 numProperties);
61 #endif
63 DECL_ISetCompressCodecsInfo
65 CHandler() { InitMethodProperties(); }
66 };
68 }}
70 #endif