zipios++
2.0.2
Zipios++ – a small C++ library that provides easy access to .zip files.
|
The zipios namespace includes the Zipios++ library definitions. More...
Namespaces | |
anonymous_namespace{collectioncollection.cpp} | |
anonymous_namespace{filecollection.cpp} | |
anonymous_namespace{filepath.cpp} | |
anonymous_namespace{zipcentraldirectoryentry.cpp} | |
anonymous_namespace{zipendofcentraldirectory.cpp} | |
Private definitions of the ZipEndOfCentralDirectory class. | |
anonymous_namespace{ziplocalentry.cpp} | |
Various definitions for local blocks. | |
anonymous_namespace{zipoutputstreambuf.cpp} | |
Classes | |
class | BackBuffer |
To read a file by chunk from the end. More... | |
class | CollectionCollection |
A collection of collections. More... | |
class | DeflateOutputStreambuf |
A class to handle stream deflate on the fly. More... | |
class | DirectoryCollection |
A collection generated from reading a directory. More... | |
class | DirectoryEntry |
A file entry that does not use compression. More... | |
class | Exception |
Base exception of the zipios environement. More... | |
class | FileCollection |
Base class for various file collections. More... | |
class | FileCollectionException |
FileCollectionException is used to signal a FileCollection problem. More... | |
class | FileEntry |
A FileEntry represents an entry in a FileCollection. More... | |
class | FilePath |
Handle a file path and name and its statistics. More... | |
class | FilterInputStreambuf |
A base class to develop input stream filters. More... | |
class | FilterOutputStreambuf |
A base class to develop output stream filters. More... | |
class | GZIPOutputStream |
A stream implementation that outputs data to a ZIP file. More... | |
class | GZIPOutputStreambuf |
Save the output stream buffer. More... | |
class | InflateInputStreambuf |
A stream buffer to inflate data previous compressed with zlib. More... | |
class | InvalidException |
An InvalidException is used when invalid data is provided. More... | |
class | InvalidStateException |
Exception used when it is not possible to move forward. More... | |
class | IOException |
An IOException is used to signal an I/O error. More... | |
class | VirtualSeeker |
A virtual class used to see in a file embedded in another. More... | |
class | ZipCentralDirectoryEntry |
A specialization of ZipLocalEntry for. More... | |
class | ZipEndOfCentralDirectory |
Marker at the end of a Zip archive file. More... | |
class | ZipFile |
The ZipFile class represents a collection of files. More... | |
class | ZipInputStream |
The ZipInputStream to read data from a Zip archive. More... | |
class | ZipInputStreambuf |
An input stream buffer for Zip data. More... | |
class | ZipLocalEntry |
An implementation of the FileEntry for Zip archives. More... | |
class | ZipOutputStream |
A ZipOutputStream to allow for data to be compressed zlib. More... | |
class | ZipOutputStreambuf |
Handle the output buffer of a zip archive. More... | |
Typedefs | |
typedef std::vector< unsigned char > | buffer_t |
A buffer of characters. More... | |
typedef std::streamoff | offset_t |
typedef std::ostringstream | OutputStringStream |
An output stream using strings. More... | |
Enumerations | |
enum | StorageMethod : uint8_t { StorageMethod::STORED = 0, StorageMethod::SHRUNK = 1, StorageMethod::REDUCED1 = 2, StorageMethod::REDUCED2 = 3, StorageMethod::REDUCED3 = 4, StorageMethod::REDUCED4 = 5, StorageMethod::IMPLODED = 6, StorageMethod::TOKENIZED = 7, StorageMethod::DEFLATED = 8, StorageMethod::DEFLATED64 = 9, StorageMethod::OLD_TERSE = 10, StorageMethod::RESERVED11 = 11, StorageMethod::BZIP2 = 12, StorageMethod::REVERVED13 = 13, StorageMethod::LZMA = 14, StorageMethod::RESERVED15 = 15, StorageMethod::RESERVED16 = 16, StorageMethod::RESERVED17 = 17, StorageMethod::NEW_TERSE = 18, StorageMethod::LZ77 = 19, StorageMethod::WAVPACK = 97, StorageMethod::PPMD_I_1 = 98 } |
The types used with FileEntry::setMethod and FileEntry::getMethod. More... | |
Functions | |
size_t | getBufferSize () |
char const * | getVersion () |
std::ostream & | operator<< (std::ostream &os, FilePath const &path) |
Print out a FilePath. More... | |
std::ostream & | operator<< (std::ostream &os, FileCollection const &collection) |
Write a FileCollection to the output stream. More... | |
std::ostream & | operator<< (std::ostream &os, FileEntry const &entry) |
Output an entry as a string to a stream. More... | |
bool | operator== (char const *lhs, FilePath const &rhs) |
Check whether two FilePath represent the same file. More... | |
bool | operator== (std::string const &lhs, FilePath const &rhs) |
Check whether two FilePath represent the same file. More... | |
void | zipRead (std::istream &is, uint32_t &value) |
void | zipRead (std::istream &is, uint16_t &value) |
void | zipRead (std::istream &is, uint8_t &value) |
void | zipRead (std::istream &is, buffer_t &buffer, ssize_t const count) |
void | zipRead (std::istream &is, std::string &str, ssize_t const count) |
void | zipRead (buffer_t const &is, size_t &pos, uint32_t &value) |
void | zipRead (buffer_t const &is, size_t &pos, uint16_t &value) |
void | zipRead (buffer_t const &is, size_t &pos, uint8_t &value) |
void | zipRead (buffer_t const &is, size_t &pos, buffer_t &buffer, ssize_t const count) |
void | zipRead (buffer_t const &is, size_t &pos, std::string &str, ssize_t const count) |
void | zipWrite (std::ostream &os, uint32_t const &value) |
void | zipWrite (std::ostream &os, uint16_t const &value) |
void | zipWrite (std::ostream &os, uint8_t const &value) |
void | zipWrite (std::ostream &os, buffer_t const &buffer) |
void | zipWrite (std::ostream &os, std::string const &str) |
Variables | |
char const | g_separator = '/' |
The character used as the filename separator. More... | |
This namespace is used to clearly separate all the Zipios++ definitions. Note that a very few definitions are found outside of the namespace. Some of those are hidden in the source of the library, a very few appear in the zipios-config.hpp file as they are used to support zipios++ on any platform.
Note that to ensure secure development, we do not make use of the C++ "using ..." keyword. That way we can guarantee what's what.
std::vector< unsigned char > zipios::buffer_t |
This type is used to declare a buffer of characters. It is used in many places.
Definition at line 93 of file zipios_common.hpp.
typedef std::streamoff zipios::offset_t |
Definition at line 57 of file zipios-config.hpp.in.
std::ostringstream zipios::OutputStringStream |
This object is used whenever we want to output a buffer from a string and convert that to a string.
Definition at line 90 of file zipios_common.hpp.
|
strong |
The current entries are the types supported by the zip format. The numbering matches one to one the numbering used in the zip file format, i.e. STORED is indicated by a 0 in the method field in a zip file and so on.
The zipios library only support STORED and DEFLATED at this time.
Definition at line 47 of file fileentry.hpp.
|
inline |
Definition at line 60 of file zipios-config.hpp.in.
Referenced by zipios::DeflateOutputStreambuf::endDeflation(), zipios::DeflateOutputStreambuf::flushOutvec(), zipios::DeflateOutputStreambuf::init(), zipios::ZipOutputStreambuf::overflow(), zipios::DeflateOutputStreambuf::overflow(), zipios::ZipOutputStreambuf::putNextEntry(), zipios::InflateInputStreambuf::reset(), zipios::ZipInputStreambuf::underflow(), zipios::InflateInputStreambuf::underflow(), and zipios::ZipInputStreambuf::ZipInputStreambuf().
|
inline |
Definition at line 51 of file zipios-config.hpp.in.
References ZIPIOS_VERSION_STRING.
Referenced by main().
std::ostream & zipios::operator<< | ( | std::ostream & | os, |
FilePath const & | path | ||
) |
This function prints out the name of the file that this FilePath represents.
[in,out] | os | The output stream. |
[in] | path | The path to print out. |
os
stream reference. Definition at line 502 of file filepath.cpp.
std::ostream & zipios::operator<< | ( | std::ostream & | os, |
FileCollection const & | collection | ||
) |
This function writes a simple textual representation of this FileCollection to the output stream.
[in,out] | os | The output stream. |
[in] | collection | The collection to print out. |
os
output stream. Definition at line 598 of file filecollection.cpp.
References zipios::FileCollection::entries(), and zipios::FileCollection::getName().
std::ostream & zipios::operator<< | ( | std::ostream & | os, |
FileEntry const & | entry | ||
) |
This function transforms the FileEntry into a string and prints the result to the specified output stream.
[in,out] | os | The output stream. |
[in] | entry | The entry to print out. |
Definition at line 759 of file fileentry.cpp.
References zipios::FileEntry::toString().
bool zipios::operator== | ( | char const * | lhs, |
FilePath const & | rhs | ||
) |
This function compares a FilePath object (this) and a C-string to know whether the two are the same.
A null pointer as the C-string is viewed as an empty string.
[in] | lhs | The left hand side to compare with. |
[in] | rhs | The right hand side to compare with. |
Definition at line 235 of file filepath.cpp.
References zipios::FilePath::m_path.
bool zipios::operator== | ( | std::string const & | lhs, |
FilePath const & | rhs | ||
) |
This function compares a FilePath object (this) against a string representing a path to know whether the two are the equal.
[in] | lhs | The left hand side to compare with. |
[in] | rhs | The right hand side to compare with. |
Definition at line 268 of file filepath.cpp.
References zipios::FilePath::m_path.
void zipios::zipRead | ( | std::istream & | is, |
uint32_t & | value | ||
) |
Definition at line 74 of file zipios_common.cpp.
Referenced by zipios::ZipFile::openEmbeddedZipFile(), zipios::ZipCentralDirectoryEntry::read(), zipios::ZipEndOfCentralDirectory::read(), zipios::ZipLocalEntry::read(), and zipios::BackBuffer::readChunk().
void zipios::zipRead | ( | std::istream & | is, |
uint16_t & | value | ||
) |
Definition at line 95 of file zipios_common.cpp.
void zipios::zipRead | ( | std::istream & | is, |
uint8_t & | value | ||
) |
Definition at line 114 of file zipios_common.cpp.
void zipios::zipRead | ( | std::istream & | is, |
buffer_t & | buffer, | ||
ssize_t const | count | ||
) |
Definition at line 132 of file zipios_common.cpp.
void zipios::zipRead | ( | std::istream & | is, |
std::string & | str, | ||
ssize_t const | count | ||
) |
Definition at line 149 of file zipios_common.cpp.
void zipios::zipRead | ( | buffer_t const & | is, |
size_t & | pos, | ||
uint32_t & | value | ||
) |
Definition at line 166 of file zipios_common.cpp.
void zipios::zipRead | ( | buffer_t const & | is, |
size_t & | pos, | ||
uint16_t & | value | ||
) |
Definition at line 182 of file zipios_common.cpp.
void zipios::zipRead | ( | buffer_t const & | is, |
size_t & | pos, | ||
uint8_t & | value | ||
) |
Definition at line 196 of file zipios_common.cpp.
void zipios::zipRead | ( | buffer_t const & | is, |
size_t & | pos, | ||
buffer_t & | buffer, | ||
ssize_t const | count | ||
) |
Definition at line 209 of file zipios_common.cpp.
void zipios::zipRead | ( | buffer_t const & | is, |
size_t & | pos, | ||
std::string & | str, | ||
ssize_t const | count | ||
) |
Definition at line 223 of file zipios_common.cpp.
void zipios::zipWrite | ( | std::ostream & | os, |
uint32_t const & | value | ||
) |
Definition at line 237 of file zipios_common.cpp.
Referenced by zipios::ZipCentralDirectoryEntry::write(), zipios::ZipEndOfCentralDirectory::write(), and zipios::ZipLocalEntry::write().
void zipios::zipWrite | ( | std::ostream & | os, |
uint16_t const & | value | ||
) |
Definition at line 253 of file zipios_common.cpp.
void zipios::zipWrite | ( | std::ostream & | os, |
uint8_t const & | value | ||
) |
Definition at line 267 of file zipios_common.cpp.
void zipios::zipWrite | ( | std::ostream & | os, |
buffer_t const & | buffer | ||
) |
Definition at line 280 of file zipios_common.cpp.
void zipios::zipWrite | ( | std::ostream & | os, |
std::string const & | str | ||
) |
Definition at line 289 of file zipios_common.cpp.
char const zipios::g_separator = '/' |
This character is used to separate filename segments in a path in a Zip archive.
Definition at line 51 of file zipios_common.cpp.
Referenced by zipios::FilePath::filename(), zipios::FilePath::operator+(), zipios::anonymous_namespace{filepath.cpp}::pruneTrailingSeparator(), zipios::ZipCentralDirectoryEntry::read(), zipios::ZipLocalEntry::read(), zipios::ZipCentralDirectoryEntry::write(), and zipios::ZipLocalEntry::write().