7#ifndef PXR_USD_SDF_ZIP_FILE_H
8#define PXR_USD_SDF_ZIP_FILE_H
11#include "pxr/usd/sdf/api.h"
19PXR_NAMESPACE_OPEN_SCOPE
65 explicit operator bool()
const {
return static_cast<bool>(_impl); }
106 explicit _ArrowProxy(
const std::string& s) : _s(s) { }
107 const std::string* operator->()
const {
return &_s; }
131 using difference_type = std::ptrdiff_t;
132 using value_type = std::string;
133 using pointer = _ArrowProxy;
134 using reference = std::string;
135 using iterator_category = std::forward_iterator_tag;
143 bool operator==(
const Iterator& rhs)
const;
145 bool operator!=(
const Iterator& rhs)
const;
171 Iterator(
const _Impl* impl,
size_t offset = 0);
174 std::unique_ptr<_IteratorData> _data;
204 std::shared_ptr<_Impl> _impl;
244 explicit operator bool()
const {
return static_cast<bool>(_impl); }
256 std::string
AddFile(
const std::string& filePath,
257 const std::string& filePathInArchive = std::string());
275 std::unique_ptr<_Impl> _impl;
278PXR_NAMESPACE_CLOSE_SCOPE
Interface for accessing the contents of an asset.
Iterator for traversing and inspecting the contents of the zip archive.
SDF_API pointer operator->() const
Returns filename of the current file in the zip archive.
SDF_API const char * GetFile() const
Returns pointer to the beginning of the current file in the zip archive.
SDF_API reference operator*() const
Returns filename of the current file in the zip archive.
SDF_API FileInfo GetFileInfo() const
Returns FileInfo object containing information about the current file.
Class for reading a zip file.
size_t uncompressedSize
Uncompressed size of this file.
SDF_API Iterator begin() const
Returns iterator pointing to the first file in the zip archive.
SDF_API void DumpContents() const
Print out listing of contents of this zip archive to stdout.
Iterator cend() const
Returns end iterator for this zip archive.
uint16_t compressionMethod
Compression method for this file.
Iterator cbegin() const
Returns iterator pointing to the first file in the zip archive.
size_t size
Size of this file as stored in the zip archive.
bool encrypted
Whether or not this file is encrypted.
size_t dataOffset
Offset of the beginning of this file's data from the start of the zip archive.
SDF_API Iterator end() const
Returns end iterator for this zip archive.
SDF_API Iterator Find(const std::string &path) const
Returns iterator to the file with the given path in this zip archive, or end() if no such file exists...
static SDF_API SdfZipFile Open(const std::shared_ptr< ArAsset > &asset)
Opens the zip archive asset.
SDF_API SdfZipFile()
Create an invalid SdfZipFile object.
static SDF_API SdfZipFile Open(const std::string &filePath)
Opens the zip archive at filePath.
size_t crc
CRC-32 value of the uncompressed file.
Information for a file in the zip archive.
Class for writing a zip file.
SDF_API void Discard()
Discards the zip archive so that it is not saved to the destination file path.
SDF_API std::string AddFile(const std::string &filePath, const std::string &filePathInArchive=std::string())
Adds the file at filePath to the zip archive with no compression applied.
static SDF_API SdfZipFileWriter CreateNew(const std::string &filePath)
Create a new file writer with filePath as the destination file path where the zip archive will be wri...
SDF_API ~SdfZipFileWriter()
Calls Save()
SDF_API SdfZipFileWriter()
Create an invalid SdfZipFileWriter object.
SDF_API bool Save()
Finalizes the zip archive and saves it to the destination file path.