annotate src/win32/7zip/7z/CPP/7zip/Archive/7z/7zHandler.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 // 7z/Handler.h
rlm@1 2
rlm@1 3 #ifndef __7Z_HANDLER_H
rlm@1 4 #define __7Z_HANDLER_H
rlm@1 5
rlm@1 6 #include "../../ICoder.h"
rlm@1 7 #include "../IArchive.h"
rlm@1 8 #include "7zIn.h"
rlm@1 9
rlm@1 10 #include "7zCompressionMode.h"
rlm@1 11
rlm@1 12 #include "../../Common/CreateCoder.h"
rlm@1 13
rlm@1 14 #ifndef EXTRACT_ONLY
rlm@1 15 #include "../Common/HandlerOut.h"
rlm@1 16 #endif
rlm@1 17
rlm@1 18 namespace NArchive {
rlm@1 19 namespace N7z {
rlm@1 20
rlm@1 21 #ifndef __7Z_SET_PROPERTIES
rlm@1 22
rlm@1 23 #ifdef EXTRACT_ONLY
rlm@1 24 #ifdef COMPRESS_MT
rlm@1 25 #define __7Z_SET_PROPERTIES
rlm@1 26 #endif
rlm@1 27 #else
rlm@1 28 #define __7Z_SET_PROPERTIES
rlm@1 29 #endif
rlm@1 30
rlm@1 31 #endif
rlm@1 32
rlm@1 33
rlm@1 34 class CHandler:
rlm@1 35 #ifndef EXTRACT_ONLY
rlm@1 36 public NArchive::COutHandler,
rlm@1 37 #endif
rlm@1 38 public IInArchive,
rlm@1 39 #ifdef __7Z_SET_PROPERTIES
rlm@1 40 public ISetProperties,
rlm@1 41 #endif
rlm@1 42 #ifndef EXTRACT_ONLY
rlm@1 43 public IOutArchive,
rlm@1 44 #endif
rlm@1 45 PUBLIC_ISetCompressCodecsInfo
rlm@1 46 public CMyUnknownImp
rlm@1 47 {
rlm@1 48 public:
rlm@1 49 MY_QUERYINTERFACE_BEGIN2(IInArchive)
rlm@1 50 #ifdef __7Z_SET_PROPERTIES
rlm@1 51 MY_QUERYINTERFACE_ENTRY(ISetProperties)
rlm@1 52 #endif
rlm@1 53 #ifndef EXTRACT_ONLY
rlm@1 54 MY_QUERYINTERFACE_ENTRY(IOutArchive)
rlm@1 55 #endif
rlm@1 56 QUERY_ENTRY_ISetCompressCodecsInfo
rlm@1 57 MY_QUERYINTERFACE_END
rlm@1 58 MY_ADDREF_RELEASE
rlm@1 59
rlm@1 60 INTERFACE_IInArchive(;)
rlm@1 61
rlm@1 62 #ifdef __7Z_SET_PROPERTIES
rlm@1 63 STDMETHOD(SetProperties)(const wchar_t **names, const PROPVARIANT *values, Int32 numProperties);
rlm@1 64 #endif
rlm@1 65
rlm@1 66 #ifndef EXTRACT_ONLY
rlm@1 67 INTERFACE_IOutArchive(;)
rlm@1 68 #endif
rlm@1 69
rlm@1 70 DECL_ISetCompressCodecsInfo
rlm@1 71
rlm@1 72 CHandler();
rlm@1 73
rlm@1 74 private:
rlm@1 75 CMyComPtr<IInStream> _inStream;
rlm@1 76 NArchive::N7z::CArchiveDatabaseEx _db;
rlm@1 77 #ifndef _NO_CRYPTO
rlm@1 78 bool _passwordIsDefined;
rlm@1 79 #endif
rlm@1 80
rlm@1 81 #ifdef EXTRACT_ONLY
rlm@1 82
rlm@1 83 #ifdef COMPRESS_MT
rlm@1 84 UInt32 _numThreads;
rlm@1 85 #endif
rlm@1 86
rlm@1 87 UInt32 _crcSize;
rlm@1 88
rlm@1 89 #else
rlm@1 90
rlm@1 91 CRecordVector<CBind> _binds;
rlm@1 92
rlm@1 93 HRESULT SetPassword(CCompressionMethodMode &methodMode, IArchiveUpdateCallback *updateCallback);
rlm@1 94
rlm@1 95 HRESULT SetCompressionMethod(CCompressionMethodMode &method,
rlm@1 96 CObjectVector<COneMethodInfo> &methodsInfo
rlm@1 97 #ifdef COMPRESS_MT
rlm@1 98 , UInt32 numThreads
rlm@1 99 #endif
rlm@1 100 );
rlm@1 101
rlm@1 102 HRESULT SetCompressionMethod(
rlm@1 103 CCompressionMethodMode &method,
rlm@1 104 CCompressionMethodMode &headerMethod);
rlm@1 105
rlm@1 106 #endif
rlm@1 107
rlm@1 108 bool IsEncrypted(UInt32 index2) const;
rlm@1 109 #ifndef _SFX
rlm@1 110
rlm@1 111 CRecordVector<UInt64> _fileInfoPopIDs;
rlm@1 112 void FillPopIDs();
rlm@1 113
rlm@1 114 #endif
rlm@1 115
rlm@1 116 DECL_EXTERNAL_CODECS_VARS
rlm@1 117 };
rlm@1 118
rlm@1 119 }}
rlm@1 120
rlm@1 121 #endif