7#ifndef PXR_USD_USD_ZIP_FILE_H
8#define PXR_USD_USD_ZIP_FILE_H
11#include "pxr/usd/usd/api.h"
18PXR_NAMESPACE_OPEN_SCOPE
64 explicit operator bool()
const {
return static_cast<bool>(_impl); }
105 explicit _ArrowProxy(
const std::string& s) : _s(s) { }
106 const std::string* operator->()
const {
return &_s; }
130 using difference_type = std::ptrdiff_t;
131 using value_type = std::string;
132 using pointer = _ArrowProxy;
133 using reference = std::string;
134 using iterator_category = std::forward_iterator_tag;
142 bool operator==(
const Iterator& rhs)
const;
144 bool operator!=(
const Iterator& rhs)
const;
170 Iterator(
const _Impl* impl,
size_t offset = 0);
173 std::unique_ptr<_IteratorData> _data;
203 std::shared_ptr<_Impl> _impl;
243 explicit operator bool()
const {
return static_cast<bool>(_impl); }
255 std::string
AddFile(
const std::string& filePath,
256 const std::string& filePathInArchive = std::string());
274 std::unique_ptr<_Impl> _impl;
277PXR_NAMESPACE_CLOSE_SCOPE
Interface for accessing the contents of an asset.
Iterator for traversing and inspecting the contents of the zip archive.
USD_API pointer operator->() const
Returns filename of the current file in the zip archive.
USD_API FileInfo GetFileInfo() const
Returns FileInfo object containing information about the current file.
USD_API const char * GetFile() const
Returns pointer to the beginning of the current file in the zip archive.
USD_API reference operator*() const
Returns filename of the current file in the zip archive.
Class for reading a zip file.
size_t uncompressedSize
Uncompressed size of this file.
Iterator cend() const
Returns end iterator for this zip archive.
uint16_t compressionMethod
Compression method for this file.
USD_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...
Iterator cbegin() const
Returns iterator pointing to the first file in the zip archive.
static USD_API UsdZipFile Open(const std::string &filePath)
Opens the zip archive at filePath.
size_t size
Size of this file as stored in the zip archive.
bool encrypted
Whether or not this file is encrypted.
USD_API UsdZipFile()
Create an invalid UsdZipFile object.
size_t dataOffset
Offset of the beginning of this file's data from the start of the zip archive.
USD_API Iterator begin() const
Returns iterator pointing to the first file in the zip archive.
static USD_API UsdZipFile Open(const std::shared_ptr< ArAsset > &asset)
Opens the zip archive asset.
USD_API void DumpContents() const
Print out listing of contents of this zip archive to stdout.
USD_API Iterator end() const
Returns end iterator for this zip archive.
size_t crc
CRC-32 value of the uncompressed file.
Information for a file in the zip archive.
Class for writing a zip file.
USD_API ~UsdZipFileWriter()
Calls Save()
USD_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.
USD_API UsdZipFileWriter()
Create an invalid UsdZipFileWriter object.
USD_API bool Save()
Finalizes the zip archive and saves it to the destination file path.
USD_API void Discard()
Discards the zip archive so that it is not saved to the destination file path.
static USD_API UsdZipFileWriter CreateNew(const std::string &filePath)
Create a new file writer with filePath as the destination file path where the zip archive will be wri...