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