Mercurial > vba-clojure
comparison src/win32/7zip/7z/CPP/7zip/Archive/Rar/RarHandler.h @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:8ced16adf2e1 | 1:f9f4f1b99eed |
---|---|
1 // Rar/Handler.h | |
2 | |
3 #ifndef __RAR_HANDLER_H | |
4 #define __RAR_HANDLER_H | |
5 | |
6 #include "../IArchive.h" | |
7 #include "RarIn.h" | |
8 #include "RarVolumeInStream.h" | |
9 | |
10 #include "../../Common/CreateCoder.h" | |
11 | |
12 namespace NArchive { | |
13 namespace NRar { | |
14 | |
15 class CHandler: | |
16 public IInArchive, | |
17 PUBLIC_ISetCompressCodecsInfo | |
18 public CMyUnknownImp | |
19 { | |
20 public: | |
21 MY_QUERYINTERFACE_BEGIN2(IInArchive) | |
22 QUERY_ENTRY_ISetCompressCodecsInfo | |
23 MY_QUERYINTERFACE_END | |
24 MY_ADDREF_RELEASE | |
25 | |
26 INTERFACE_IInArchive(;) | |
27 | |
28 DECL_ISetCompressCodecsInfo | |
29 | |
30 private: | |
31 CRecordVector<CRefItem> _refItems; | |
32 CObjectVector<CItemEx> _items; | |
33 CObjectVector<CInArchive> _archives; | |
34 NArchive::NRar::CInArchiveInfo _archiveInfo; | |
35 | |
36 DECL_EXTERNAL_CODECS_VARS | |
37 | |
38 UInt64 GetPackSize(int refIndex) const; | |
39 // NArchive::NRar::CInArchive _archive; | |
40 | |
41 bool IsSolid(int refIndex) | |
42 { | |
43 const CItemEx &item = _items[_refItems[refIndex].ItemIndex]; | |
44 if (item.UnPackVersion < 20) | |
45 { | |
46 if (_archiveInfo.IsSolid()) | |
47 return (refIndex > 0); | |
48 return false; | |
49 } | |
50 return item.IsSolid(); | |
51 } | |
52 | |
53 HRESULT Open2(IInStream *stream, | |
54 const UInt64 *maxCheckStartPosition, | |
55 IArchiveOpenCallback *openArchiveCallback); | |
56 }; | |
57 | |
58 }} | |
59 | |
60 #endif |