Skip to content

BitOutputArchive

Oz edited this page Dec 15, 2024 · 8 revisions

The BitOutputArchive class, given a creator object, allows creating new archives.

#include <bit7z/bitoutputarchive.hpp>

List of all members

Public Members

Return type Name
BitOutputArchive( const BitAbstractArchiveCreator& creator )
BitOutputArchive( const BitAbstractArchiveCreator& creator, const buffer_t& inBuffer, ArchiveStartOffset startOffset = ArchiveStartOffset::None )
BitOutputArchive( const BitAbstractArchiveCreator& creator, const tstring& inFile, ArchiveStartOffset startOffset = ArchiveStartOffset::None )
BitOutputArchive( const BitAbstractArchiveCreator& creator, std::istream& inStream, ArchiveStartOffset startOffset = ArchiveStartOffset::None )
~BitOutputArchive() = default
void addDirectory( const tstring& inDir )
void addDirectoryContents( const tstring& inDir, const tstring& filter, bool recursive )
void addDirectoryContents( const tstring& inDir, const tstring& filter = "*", FilterPolicy policy = FilterPolicy::Include, bool recursive = true )
void addFile( const std::vector< byte_t >& inBuffer, const tstring& name )
void addFile( const tstring& inFile, const tstring& name = {} )
void addFile( std::istream& inStream, const tstring& name )
void addFiles( const std::vector< tstring >& inFiles )
void addFiles( const tstring& inDir, const tstring& filter, bool recursive )
void addFiles( const tstring& inDir, const tstring& filter = "*", FilterPolicy policy = FilterPolicy::Include, bool recursive = true )
void addItems( const std::map< tstring, tstring >& inPaths )
void addItems( const std::vector< tstring >& inPaths )
void compressTo( const tstring& outFile )
void compressTo( std::ostream& outStream )
void compressTo( std::vector< byte_t >& outBuffer )
const BitAbstractArchiveCreator & creator() const noexcept
const BitAbstractArchiveHandler & handler() const noexcept
uint32_t itemsCount() const

Member Function Documentation

BitOutputArchive( const BitAbstractArchiveCreator& creator )

Constructs a BitOutputArchive object for a completely new archive.

Parameters:

  • creator: the reference to the BitAbstractArchiveCreator object containing all the settings to be used for creating the new archive.

BitOutputArchive( const BitAbstractArchiveCreator& creator, const buffer_t& inBuffer, ArchiveStartOffset startOffset = ArchiveStartOffset::None )

Constructs a BitOutputArchive object, opening an input file archive from the given buffer. If a non-empty input buffer is passed, the archive file it contains will be opened and used as a base for the creation of the new archive. Otherwise, the class will behave as if it is creating a completely new archive.

Parameters:

  • creator: the reference to the BitAbstractArchiveCreator object containing all the settings to be used for creating the new archive and reading the (optional) input archive.
  • inBuffer: the buffer containing an input archive file.

BitOutputArchive( const BitAbstractArchiveCreator& creator, const tstring& inFile, ArchiveStartOffset startOffset = ArchiveStartOffset::None )

Constructs a BitOutputArchive object, opening an (optional) input file archive. If a non-empty input file path is passed, the corresponding archive will be opened and used as a base for the creation of the new archive. Otherwise, the class will behave as if it is creating a completely new archive.

Parameters:

  • creator: the reference to the BitAbstractArchiveCreator object containing all the settings to be used for creating the new archive and reading the (optional) input archive.
  • inFile: (optional) the path to an input archive file.

BitOutputArchive( const BitAbstractArchiveCreator& creator, std::istream& inStream, ArchiveStartOffset startOffset = ArchiveStartOffset::None )

Constructs a BitOutputArchive object, reading an input file archive from the given std::istream.

Parameters:

  • creator: the reference to the BitAbstractArchiveCreator object containing all the settings to be used for creating the new archive and reading the (optional) input archive.
  • inStream: the standard input stream of the input archive file.

[virtual] ~BitOutputArchive() = default

Default destructor.


void addDirectory( const tstring& inDir )

Adds the given directory path and all its content.

Parameters:

  • inDir: the path of the directory to be added to the archive.

void addDirectoryContents( const tstring& inDir, const tstring& filter, bool recursive )

Adds the contents of the given directory path. This function iterates through the specified directory and adds its contents based on the provided wildcard filter. Optionally, the operation can be recursive, meaning it will include subdirectories and their contents.

Parameters:

  • inDir: the directory where to search for files to be added to the output archive.
  • filter: the wildcard filter to be used for searching the files.
  • recursive: recursively search the files in the given directory and all of its subdirectories.

void addDirectoryContents( const tstring& inDir, const tstring& filter = "*", FilterPolicy policy = FilterPolicy::Include, bool recursive = true )

Adds the contents of the given directory path. This function iterates through the specified directory and adds its contents based on the provided wildcard filter and policy. Optionally, the operation can be recursive, meaning it will include subdirectories and their contents.

Parameters:

  • inDir: the directory where to search for files to be added to the output archive.
  • filter: (optional) the wildcard filter to be used for searching the files.
  • recursive: (optional) recursively search the files in the given directory and all of its subdirectories.
  • policy: (optional) the filtering policy to be applied to the matched items.

void addFile( const std::vector< byte_t >& inBuffer, const tstring& name )

Adds the given buffer file, using the given name as a path when compressed in the output archive.

Parameters:

  • inBuffer: the buffer containing the file to be added to the output archive.
  • name: user-defined path to be used inside the output archive.

void addFile( const tstring& inFile, const tstring& name = {} )

Adds the given file path, with an optional user-defined path to be used in the output archive.

Note

If a directory path is given, a BitException is thrown.

Parameters:

  • inFile: the path to the filesystem file to be added to the output archive.
  • name: (optional) user-defined path to be used inside the output archive.

void addFile( std::istream& inStream, const tstring& name )

Adds the given standard input stream, using the given name as a path when compressed in the output archive.

Parameters:

  • inStream: the input stream to be added.
  • name: the name of the file inside the output archive.

void addFiles( const std::vector< tstring >& inFiles )

Adds all the files in the given vector of filesystem paths.

Note

Paths to directories are ignored.

Parameters:

  • inFiles: the vector of paths to files.

void addFiles( const tstring& inDir, const tstring& filter, bool recursive )

Adds all the files inside the given directory path that match the given wildcard filter.

Parameters:

  • inDir: the directory where to search for files to be added to the output archive.
  • filter: the wildcard filter to be used for searching the files.
  • recursive: recursively search the files in the given directory and all of its subdirectories.

void addFiles( const tstring& inDir, const tstring& filter = "*", FilterPolicy policy = FilterPolicy::Include, bool recursive = true )

Adds all the files inside the given directory path that match the given wildcard filter.

Parameters:

  • inDir: the directory where to search for files to be added to the output archive.
  • filter: (optional) the wildcard filter to be used for searching the files.
  • recursive: (optional) recursively search the files in the given directory and all of its subdirectories.
  • policy: (optional) the filtering policy to be applied to the matched items.

void addItems( const std::map< tstring, tstring >& inPaths )

Adds all the items that can be found by indexing the keys of the given map of filesystem paths; the corresponding mapped values are the user-defined paths wanted inside the output archive.

Parameters:

  • inPaths: map of filesystem paths with the corresponding user-defined path desired inside the output archive.

void addItems( const std::vector< tstring >& inPaths )

Adds all the items that can be found by indexing the given vector of filesystem paths.

Parameters:

  • inPaths: the vector of filesystem paths.

void compressTo( const tstring& outFile )

Compresses all the items added to this object to the specified archive file path.

Note

If this object was created by passing an input archive file path, and this latter is the same as the outFile path parameter, the file will be updated.

Parameters:

  • outFile: the output archive file path.

void compressTo( std::ostream& outStream )

Compresses all the items added to this object to the specified buffer.

Parameters:

  • outStream: the output standard stream.

void compressTo( std::vector< byte_t >& outBuffer )

Compresses all the items added to this object to the specified buffer.

Parameters:

  • outBuffer: the output buffer.

const BitAbstractArchiveCreator & creator() const noexcept

Returns a constant reference to the BitAbstractArchiveHandler object containing the settings for writing the output archive.


const BitAbstractArchiveHandler & handler() const noexcept

Returns a constant reference to the BitAbstractArchiveHandler object containing the settings for writing the output archive.


uint32_t itemsCount() const

Returns the total number of items added to the output archive object.


Clone this wiki locally