annotate 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
rev   line source
rlm@1 1 // Rar/Handler.h
rlm@1 2
rlm@1 3 #ifndef __RAR_HANDLER_H
rlm@1 4 #define __RAR_HANDLER_H
rlm@1 5
rlm@1 6 #include "../IArchive.h"
rlm@1 7 #include "RarIn.h"
rlm@1 8 #include "RarVolumeInStream.h"
rlm@1 9
rlm@1 10 #include "../../Common/CreateCoder.h"
rlm@1 11
rlm@1 12 namespace NArchive {
rlm@1 13 namespace NRar {
rlm@1 14
rlm@1 15 class CHandler:
rlm@1 16 public IInArchive,
rlm@1 17 PUBLIC_ISetCompressCodecsInfo
rlm@1 18 public CMyUnknownImp
rlm@1 19 {
rlm@1 20 public:
rlm@1 21 MY_QUERYINTERFACE_BEGIN2(IInArchive)
rlm@1 22 QUERY_ENTRY_ISetCompressCodecsInfo
rlm@1 23 MY_QUERYINTERFACE_END
rlm@1 24 MY_ADDREF_RELEASE
rlm@1 25
rlm@1 26 INTERFACE_IInArchive(;)
rlm@1 27
rlm@1 28 DECL_ISetCompressCodecsInfo
rlm@1 29
rlm@1 30 private:
rlm@1 31 CRecordVector<CRefItem> _refItems;
rlm@1 32 CObjectVector<CItemEx> _items;
rlm@1 33 CObjectVector<CInArchive> _archives;
rlm@1 34 NArchive::NRar::CInArchiveInfo _archiveInfo;
rlm@1 35
rlm@1 36 DECL_EXTERNAL_CODECS_VARS
rlm@1 37
rlm@1 38 UInt64 GetPackSize(int refIndex) const;
rlm@1 39 // NArchive::NRar::CInArchive _archive;
rlm@1 40
rlm@1 41 bool IsSolid(int refIndex)
rlm@1 42 {
rlm@1 43 const CItemEx &item = _items[_refItems[refIndex].ItemIndex];
rlm@1 44 if (item.UnPackVersion < 20)
rlm@1 45 {
rlm@1 46 if (_archiveInfo.IsSolid())
rlm@1 47 return (refIndex > 0);
rlm@1 48 return false;
rlm@1 49 }
rlm@1 50 return item.IsSolid();
rlm@1 51 }
rlm@1 52
rlm@1 53 HRESULT Open2(IInStream *stream,
rlm@1 54 const UInt64 *maxCheckStartPosition,
rlm@1 55 IArchiveOpenCallback *openArchiveCallback);
rlm@1 56 };
rlm@1 57
rlm@1 58 }}
rlm@1 59
rlm@1 60 #endif