25#ifndef SRC_XRDEC_XRDECREADER_HH_
26#define SRC_XRDEC_XRDECREADER_HH_
34#include <unordered_map>
35#include <unordered_set>
60 friend class ::MicroTest;
61 friend class ::XrdEcTests;
95 void Read( uint64_t offset,
176 typedef std::unordered_map<std::string, std::shared_ptr<XrdCl::ZipArchive>>
dataarchs_t;
177 typedef std::unordered_map<std::string, buffer_t>
metadata_t;
178 typedef std::unordered_map<std::string, std::string>
urlmap_t;
Definition XrdClOperations.hh:325
Handle an async response.
Definition XrdClXRootDResponses.hh:1126
Request status.
Definition XrdClXRootDResponses.hh:219
Definition XrdEcReader.hh:59
metadata_t metadata
Definition XrdEcReader.hh:183
std::condition_variable waitMissing
Definition XrdEcReader.hh:194
XrdCl::Pipeline ReadSize(size_t index)
std::unordered_map< std::string, buffer_t > metadata_t
Definition XrdEcReader.hh:177
uint64_t GetSize()
Definition XrdEcReader.hh:121
missing_t missing
Definition XrdEcReader.hh:185
void Read(size_t blknb, size_t strpnb, buffer_t &buffer, callback_t cb, uint16_t timeout=0)
void Close(XrdCl::ResponseHandler *handler, uint16_t timeout=0)
Close the data object.
std::mutex missingChunksMutex
Definition XrdEcReader.hh:192
std::unordered_map< std::string, std::string > urlmap_t
Definition XrdEcReader.hh:178
std::mutex blkmtx
Definition XrdEcReader.hh:187
bool IsMissing(const std::string &fn)
Check if chunk file name is missing.
bool ParseMetadata(XrdCl::ChunkInfo &ch)
void Read(uint64_t offset, uint32_t length, void *buffer, XrdCl::ResponseHandler *handler, uint16_t timeout)
dataarchs_t dataarchs
Definition XrdEcReader.hh:182
void Open(XrdCl::ResponseHandler *handler, uint16_t timeout=0)
ObjCfg & objcfg
Definition XrdEcReader.hh:181
void AddMissing(const buffer_t &cdbuff)
std::map< std::string, size_t > archiveIndices
Definition XrdEcReader.hh:190
urlmap_t urlmap
Definition XrdEcReader.hh:184
std::shared_ptr< block_t > block
Definition XrdEcReader.hh:186
std::unordered_map< std::string, std::shared_ptr< XrdCl::ZipArchive > > dataarchs_t
Definition XrdEcReader.hh:176
static callback_t ErrorCorrected(Reader *reader, std::shared_ptr< block_t > &self, size_t blkid, size_t strpid)
void MissingVectorRead(std::shared_ptr< block_t > &block, size_t blkid, size_t strpid, uint16_t timeout=0)
uint64_t filesize
Definition XrdEcReader.hh:189
void VectorRead(const XrdCl::ChunkList &chunks, void *buffer, XrdCl::ResponseHandler *handler, uint16_t timeout)
std::unordered_set< std::string > missing_t
Definition XrdEcReader.hh:179
friend struct block_t
Definition XrdEcReader.hh:62
std::vector< std::tuple< size_t, size_t > > missingChunksVectorRead
Definition XrdEcReader.hh:193
Reader(ObjCfg &objcfg)
Definition XrdEcReader.hh:71
size_t lstblk
Definition XrdEcReader.hh:188
XrdCl::Pipeline ReadMetadata(size_t index)
std::vector< ChunkInfo > ChunkList
List of chunks.
Definition XrdClXRootDResponses.hh:1055
Definition XrdClZipArchive.hh:45
std::function< void(const XrdCl::XRootDStatus &, uint32_t)> callback_t
Definition XrdEcReader.hh:53
std::vector< char > buffer_t
a buffer type
Definition XrdEcReader.hh:49
Describe a data chunk for vector read.
Definition XrdClXRootDResponses.hh:917
Definition XrdEcObjCfg.hh:34