#include <XrdClZipArchive.hh>
|
| struct | NewFile |
| | LFH of a newly appended file (in case it needs to be overwritten) More...
|
| |
|
| | ZipArchive (bool enablePlugIns=true) |
| | Constructor. More...
|
| |
| virtual | ~ZipArchive () |
| | Destructor. More...
|
| |
| XRootDStatus | OpenArchive (const std::string &url, OpenFlags::Flags flags, ResponseHandler *handler, uint16_t timeout=0) |
| |
| XRootDStatus | OpenFile (const std::string &fn, OpenFlags::Flags flags=OpenFlags::None, uint64_t size=0, uint32_t crc32=0) |
| |
| XRootDStatus | Read (uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
| |
| XRootDStatus | ReadFrom (const std::string &fn, uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
| |
| XRootDStatus | Write (uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
| |
| XRootDStatus | UpdateMetadata (uint32_t crc32) |
| |
| XRootDStatus | AppendFile (const std::string &fn, uint32_t crc32, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
| |
| XRootDStatus | Stat (const std::string &fn, StatInfo *&info) |
| |
| XRootDStatus | Stat (StatInfo *&info) |
| |
| XRootDStatus | GetCRC32 (const std::string &fn, uint32_t &cksum) |
| |
| XRootDStatus | CloseArchive (ResponseHandler *handler, uint16_t timeout=0) |
| | Create the central directory at the end of ZIP archive and close it. More...
|
| |
| XRootDStatus | CloseFile () |
| |
| XRootDStatus | List (DirectoryList *&list) |
| |
| bool | IsOpen () |
| |
| bool | SetProperty (const std::string &name, const std::string &value) |
| | Set property on the underlying File object. More...
|
| |
| bool | GetProperty (const std::string &name, std::string &value) |
| | Get property on the underlying File object. More...
|
| |
Type that maps file name to its cache.
Stages of opening and parsing a ZIP archive.
| Enumerator |
|---|
| None |
|
| HaveEocdBlk |
|
| HaveZip64EocdlBlk |
|
| HaveZip64EocdBlk |
|
| HaveCdRecords |
|
| Done |
|
| Error |
|
| NotParsed |
|
| XrdCl::ZipArchive::ZipArchive |
( |
bool |
enablePlugIns = true | ) |
|
| virtual XrdCl::ZipArchive::~ZipArchive |
( |
| ) |
|
|
virtual |
| XRootDStatus XrdCl::ZipArchive::AppendFile |
( |
const std::string & |
fn, |
|
|
uint32_t |
crc32, |
|
|
uint32_t |
size, |
|
|
const void * |
buffer, |
|
|
ResponseHandler * |
handler, |
|
|
uint16_t |
timeout = 0 |
|
) |
| |
Create a new file in the ZIP archive and append the data
- Parameters
-
| fn | : the name of the new file to be created |
| crc32 | : the crc32 of the file |
| size | : the size of the file |
| buffer | : the buffer with the data |
| handler | : user callback |
| timeout | : operation timeout |
- Returns
- : the status of the operation
| void XrdCl::ZipArchive::Clear |
( |
| ) |
|
|
inlineprivate |
Create the central directory at the end of ZIP archive and close it.
- Parameters
-
| handler | : user callback |
| timeout | : operation timeout |
- Returns
- : the status of the operation
template<typename Response >
| static void XrdCl::ZipArchive::Free |
( |
XRootDStatus * |
st, |
|
|
Response * |
rsp |
|
) |
| |
|
inlinestaticprivate |
Free status and response.
Get a buffer with central directory of the ZIP archive
- Returns
- : buffer with central directory
| XRootDStatus XrdCl::ZipArchive::GetCRC32 |
( |
const std::string & |
fn, |
|
|
uint32_t & |
cksum |
|
) |
| |
|
inline |
| bool XrdCl::ZipArchive::GetProperty |
( |
const std::string & |
name, |
|
|
std::string & |
value |
|
) |
| |
|
inline |
Get property on the underlying File object.
| bool XrdCl::ZipArchive::IsOpen |
( |
| ) |
|
|
inline |
- Returns
- : true if ZIP archive has been successfully opened
List files in the ZIP archive
- Returns
- : the status of the operation
| static StatInfo* XrdCl::ZipArchive::make_stat |
( |
const StatInfo & |
starch, |
|
|
uint64_t |
size |
|
) |
| |
|
inlinestaticprivate |
| StatInfo* XrdCl::ZipArchive::make_stat |
( |
const std::string & |
fn | ) |
|
|
inlineprivate |
Create a StatInfo object for a given file within the ZIP archive.
- Parameters
-
- Returns
- : StatInfo object for the given file
Open ZIP Archive (and parse the Central Directory)
- Parameters
-
| url | : the URL of the ZIP archive |
| flags | : open flags to be used when openning the file |
| handler | : user callback |
| timeout | : operation timeout |
- Returns
- : the status of the operation
Open a file within the ZIP Archive
- Parameters
-
| fn | : file name to be opened |
| flags | : open flags (either 'Read' or 'New | Write') |
| size | : file size (to be included in the LFH) |
| crc32 | : file crc32 (to be included in the LFH) |
- Returns
- : the status of the operation
Open the ZIP archive in read-only mode without parsing the central directory.
- Parameters
-
| url | : url of the ZIP archive |
| handler | : user callback |
| timeout | : operation timeout |
- Returns
- : operation status
template<typename Response >
| static AnyObject* XrdCl::ZipArchive::PkgRsp |
( |
Response * |
rsp | ) |
|
|
inlinestaticprivate |
| XRootDStatus XrdCl::ZipArchive::Read |
( |
uint64_t |
offset, |
|
|
uint32_t |
size, |
|
|
void * |
buffer, |
|
|
ResponseHandler * |
handler, |
|
|
uint16_t |
timeout = 0 |
|
) |
| |
|
inline |
Read data from an open file
- Parameters
-
| offset | : offset within the file to read at |
| size | : number of bytes to be read |
| buffer | : the buffer for the data |
| handler | : user callback |
| timeout | : operation timeout |
- Returns
- : the status of the operation
References XrdCl::errInvalidOp, XrdCl::ReadFrom(), and XrdCl::stError.
| XRootDStatus XrdCl::ZipArchive::ReadFrom |
( |
const std::string & |
fn, |
|
|
uint64_t |
offset, |
|
|
uint32_t |
size, |
|
|
void * |
buffer, |
|
|
ResponseHandler * |
handler, |
|
|
uint16_t |
timeout = 0 |
|
) |
| |
Read data from a given file
- Parameters
-
| fn | : the name of the file from which we are going to read |
| offset | : offset within the file to read at |
| size | : number of bytes to be read |
| buffer | : the buffer for the data |
| handler | : user callback |
| timeout | : operation timeout |
- Returns
- : the status of the operation
template<typename Response >
| void XrdCl::ZipArchive::SetCD |
( |
const buffer_t & |
buffer | ) |
|
|
private |
Set central directory for the ZIP archive
- Parameters
-
| buffer | : a buffer with the central directory to be set |
| bool XrdCl::ZipArchive::SetProperty |
( |
const std::string & |
name, |
|
|
const std::string & |
value |
|
) |
| |
|
inline |
Set property on the underlying File object.
| XRootDStatus XrdCl::ZipArchive::UpdateMetadata |
( |
uint32_t |
crc32 | ) |
|
Update the metadata of the currently open file
- Parameters
-
| crc32 | : the crc32 checksum |
- Returns
- : the status of the operation
Append data to a new file
- Parameters
-
| size | : number of bytes to be appended |
| buffer | : the buffer with the data to be appended |
| handler | : user callback |
| timeout | : operation timeout |
- Returns
- : the status of the operation
References XrdCl::errInvalidOp, and XrdCl::stError.
Append data to a new file, implementation
- Parameters
-
| lfh | : the Local File Header record |
| size | : number of bytes to be appended |
| buffer | : the buffer with the data to be appended |
| handler | : user callback |
| timeout | : operation timeout |
- Returns
- : the status of the operation
| File XrdCl::ZipArchive::archive |
|
private |
| uint64_t XrdCl::ZipArchive::archsize |
|
private |
| std::unique_ptr<char[]> XrdCl::ZipArchive::buffer |
|
private |
| bool XrdCl::ZipArchive::cdexists |
|
private |
| uint64_t XrdCl::ZipArchive::cdoff |
|
private |
| bool XrdCl::ZipArchive::ckpinit |
|
private |
| std::unique_ptr<EOCD> XrdCl::ZipArchive::eocd |
|
private |
| std::unique_ptr<LFH> XrdCl::ZipArchive::lfh |
|
private |
| std::string XrdCl::ZipArchive::openfn |
|
private |
| uint32_t XrdCl::ZipArchive::orgcdcnt |
|
private |
| uint32_t XrdCl::ZipArchive::orgcdsz |
|
private |
| bool XrdCl::ZipArchive::updated |
|
private |
| std::unique_ptr<ZIP64_EOCD> XrdCl::ZipArchive::zip64eocd |
|
private |
The documentation for this class was generated from the following file: