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