2 #ifndef ZIPIOS_FILEENTRY_HPP
3 #define ZIPIOS_FILEENTRY_HPP
94 FileEntry(
FilePath const & filename, std::string
const & comment = std::string());
106 virtual std::string
getName()
const;
108 virtual size_t getSize()
const;
115 virtual void setComment(std::string
const& comment);
122 virtual void setSize(
size_t size);
125 virtual std::string
toString()
const;
127 virtual void read(std::istream& is);
128 virtual void write(std::ostream& os);
virtual std::time_t getUnixTime() const
Get the Unix date/time of this entry.
virtual void setTime(dostime_t time)
Set the FileEntry time using a DOS time.
StorageMethod m_compress_method
bool hasCrc() const
Check whether the CRC32 was defined.
std::ostream & operator<<(std::ostream &os, FileCollection const &collection)
Write a FileCollection to the output stream.
virtual std::string getName() const
Return the filename of the entry.
virtual void setUnixTime(std::time_t time)
Sets the time field in Unix time format for the entry.
virtual void read(std::istream &is)
Read this FileEntry from the input stream.
virtual buffer_t getExtra() const
Some extra data to be stored along the entry.
virtual StorageMethod getMethod() const
Return the method used to create this entry.
virtual bool isDirectory() const
Check whether the filename represents a directory.
virtual void write(std::ostream &os)
Write this FileEntry to the output stream.
virtual CompressionLevel getLevel() const
Retrieve the compression level.
virtual std::string getFileName() const
Return the basename of this entry.
virtual size_t getSize() const
Retrieve the size of the file when uncompressed.
CompressionLevel m_compression_level
StorageMethod
The types used with FileEntry::setMethod and FileEntry::getMethod.
virtual crc32_t getCrc() const
Return the CRC of the entry.
virtual size_t getHeaderSize() const
Retrieve the size of the header.
static CompressionLevel const COMPRESSION_LEVEL_NONE
static CompressionLevel const COMPRESSION_LEVEL_DEFAULT
int CompressionLevel
The compression level to be used to save an entry.
virtual void setComment(std::string const &comment)
Set the comment field for the FileEntry.
virtual void setSize(size_t size)
Sets the size field for the entry.
static CompressionLevel const COMPRESSION_LEVEL_MINIMUM
void setEntryOffset(std::streampos offset)
Defines the position of the entry in a Zip archive.
virtual bool isEqual(FileEntry const &file_entry) const
Compare two file entries for equality.
virtual dostime_t getTime() const
Get the MS-DOS date/time of this entry.
virtual std::string toString() const
Returns a human-readable string representation of the entry.
virtual void setMethod(StorageMethod method)
Sets the storage method field for the entry.
virtual void setExtra(buffer_t const &extra)
Set the extra field buffer.
virtual ~FileEntry()
Clean up a FileEntry object.
virtual pointer_t clone() const =0
Create a clone of a file entry.
A FileEntry represents an entry in a FileCollection.
FileEntry(FilePath const &filename, std::string const &comment=std::string())
Initialize a FileEntry object.
virtual std::string getComment() const
Retrieve the comment of the file entry.
std::streampos getEntryOffset() const
Get the offset of this entry in a Zip archive.
virtual void setCompressedSize(size_t size)
Set the size when the file is compressed.
virtual size_t getCompressedSize() const
Retrive the size of the file when compressed.
Define the zipios::FilePath class.
Handle a file path and name and its statistics.
std::vector< unsigned char > buffer_t
static CompressionLevel const COMPRESSION_LEVEL_MAXIMUM
virtual void setCrc(crc32_t crc)
Save the CRC of the entry.
static CompressionLevel const COMPRESSION_LEVEL_FASTEST
virtual bool isValid() const
Check whether this entry is valid.
static CompressionLevel const COMPRESSION_LEVEL_SMALLEST
size_t m_uncompressed_size
std::streampos m_entry_offset
std::shared_ptr< FileEntry > pointer_t
virtual void setLevel(CompressionLevel level)
Define the level of compression to use by this FileEntry.
std::vector< pointer_t > vector_t