tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Extract.h (2051B)


      1 // Extract.h
      2 
      3 #ifndef __EXTRACT_H
      4 #define __EXTRACT_H
      5 
      6 #include "../../../Windows/FileFind.h"
      7 
      8 #include "../../Archive/IArchive.h"
      9 
     10 #include "ArchiveExtractCallback.h"
     11 #include "ArchiveOpenCallback.h"
     12 #include "ExtractMode.h"
     13 #include "Property.h"
     14 
     15 #include "../Common/LoadCodecs.h"
     16 
     17 struct CExtractOptionsBase
     18 {
     19  CBoolPair ElimDup;
     20  
     21  bool PathMode_Force;
     22  bool OverwriteMode_Force;
     23  NExtract::NPathMode::EEnum PathMode;
     24  NExtract::NOverwriteMode::EEnum OverwriteMode;
     25  
     26  FString OutputDir;
     27  CExtractNtOptions NtOptions;
     28 
     29  CExtractOptionsBase():
     30      PathMode_Force(false),
     31      OverwriteMode_Force(false),
     32      PathMode(NExtract::NPathMode::kFullPaths),
     33      OverwriteMode(NExtract::NOverwriteMode::kAsk)
     34      {}
     35 };
     36 
     37 struct CExtractOptions: public CExtractOptionsBase
     38 {
     39  bool StdInMode;
     40  bool StdOutMode;
     41  bool YesToAll;
     42  bool TestMode;
     43  
     44  // bool ShowDialog;
     45  // bool PasswordEnabled;
     46  // UString Password;
     47  #ifndef _SFX
     48  CObjectVector<CProperty> Properties;
     49  #endif
     50 
     51  #ifdef EXTERNAL_CODECS
     52  CCodecs *Codecs;
     53  #endif
     54 
     55  CExtractOptions():
     56      TestMode(false),
     57      StdInMode(false),
     58      StdOutMode(false),
     59      YesToAll(false)
     60      {}
     61 };
     62 
     63 struct CDecompressStat
     64 {
     65  UInt64 NumArchives;
     66  UInt64 UnpackSize;
     67  UInt64 AltStreams_UnpackSize;
     68  UInt64 PackSize;
     69  UInt64 NumFolders;
     70  UInt64 NumFiles;
     71  UInt64 NumAltStreams;
     72 
     73  void Clear()
     74  {
     75    NumArchives = UnpackSize = AltStreams_UnpackSize = PackSize = NumFolders = NumFiles = NumAltStreams = 0;
     76  }
     77 };
     78 
     79 HRESULT Extract(
     80    CCodecs *codecs,
     81    const CObjectVector<COpenType> &types,
     82    const CIntVector &excludedFormats,
     83    UStringVector &archivePaths, UStringVector &archivePathsFull,
     84    const NWildcard::CCensorNode &wildcardCensor,
     85    const CExtractOptions &options,
     86    IOpenCallbackUI *openCallback,
     87    IExtractCallbackUI *extractCallback,
     88    #ifndef _SFX
     89    IHashCalc *hash,
     90    #endif
     91    UString &errorMessage,
     92    CDecompressStat &st);
     93 
     94 #endif