Skip to content

BitOutputArchive

Oz edited this page Oct 8, 2023 · 7 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 std::vector< byte_t >& inBuffer )
BitOutputArchive( const BitAbstractArchiveCreator& creator, const tstring& inFile )
BitOutputArchive( const BitAbstractArchiveCreator& creator, std::istream& inStream )
~BitOutputArchive() = default
void addDirectory( const tstring& inDir )
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 = true )
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 std::vector< byte_t >& inBuffer )

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 )

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 )

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 all the items inside the given directory path.

Parameters:

  • inDir: the directory where to search for items to be added to the output archive.

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 = 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.

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.

auto creator() const noexcept -> const BitAbstractArchiveCreator&

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

auto handler() const noexcept -> const BitAbstractArchiveHandler&

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

auto itemsCount() const -> uint32_t

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

Clone this wiki locally