view 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
line wrap: on
line source
1 // Rar/Handler.h
3 #ifndef __RAR_HANDLER_H
4 #define __RAR_HANDLER_H
6 #include "../IArchive.h"
7 #include "RarIn.h"
8 #include "RarVolumeInStream.h"
10 #include "../../Common/CreateCoder.h"
12 namespace NArchive {
13 namespace NRar {
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
26 INTERFACE_IInArchive(;)
28 DECL_ISetCompressCodecsInfo
30 private:
31 CRecordVector<CRefItem> _refItems;
32 CObjectVector<CItemEx> _items;
33 CObjectVector<CInArchive> _archives;
34 NArchive::NRar::CInArchiveInfo _archiveInfo;
36 DECL_EXTERNAL_CODECS_VARS
38 UInt64 GetPackSize(int refIndex) const;
39 // NArchive::NRar::CInArchive _archive;
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 }
53 HRESULT Open2(IInStream *stream,
54 const UInt64 *maxCheckStartPosition,
55 IArchiveOpenCallback *openArchiveCallback);
56 };
58 }}
60 #endif