xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
XrdEc::Reader Class Reference

#include <XrdEcReader.hh>

Collaboration diagram for XrdEc::Reader:
Collaboration graph
[legend]

Public Member Functions

 Reader (ObjCfg &objcfg)
 
virtual ~Reader ()
 
void Open (XrdCl::ResponseHandler *handler, uint16_t timeout=0)
 
void Read (uint64_t offset, uint32_t length, void *buffer, XrdCl::ResponseHandler *handler, uint16_t timeout)
 
void Close (XrdCl::ResponseHandler *handler, uint16_t timeout=0)
 Close the data object. More...
 
uint64_t GetSize ()
 

Private Types

typedef std::unordered_map
< std::string, std::shared_ptr
< XrdCl::ZipArchive > > 
dataarchs_t
 
typedef std::unordered_map
< std::string, buffer_t
metadata_t
 
typedef std::unordered_map
< std::string, std::string > 
urlmap_t
 
typedef std::unordered_set
< std::string > 
missing_t
 

Private Member Functions

void Read (size_t blknb, size_t strpnb, buffer_t &buffer, callback_t cb, uint16_t timeout=0)
 
XrdCl::Pipeline ReadMetadata (size_t index)
 
XrdCl::Pipeline ReadSize (size_t index)
 
bool ParseMetadata (XrdCl::ChunkInfo &ch)
 
void AddMissing (const buffer_t &cdbuff)
 
bool IsMissing (const std::string &fn)
 Check if chunk file name is missing. More...
 

Private Attributes

ObjCfgobjcfg
 
dataarchs_t dataarchs
 
metadata_t metadata
 
urlmap_t urlmap
 
missing_t missing
 
std::shared_ptr< block_tblock
 
std::mutex blkmtx
 
size_t lstblk
 
uint64_t filesize
 

Friends

class ::MicroTest
 
struct block_t
 

Member Typedef Documentation

typedef std::unordered_map<std::string, std::shared_ptr<XrdCl::ZipArchive> > XrdEc::Reader::dataarchs_t
private
typedef std::unordered_map<std::string, buffer_t> XrdEc::Reader::metadata_t
private
typedef std::unordered_set<std::string> XrdEc::Reader::missing_t
private
typedef std::unordered_map<std::string, std::string> XrdEc::Reader::urlmap_t
private

Constructor & Destructor Documentation

XrdEc::Reader::Reader ( ObjCfg objcfg)
inline

Constructor

Parameters
objcfg: configuration for the data object (e.g. number of data and parity stripes)
virtual XrdEc::Reader::~Reader ( )
virtual

Member Function Documentation

void XrdEc::Reader::AddMissing ( const buffer_t cdbuff)
private

Add all the entries from given Central Directory to missing

Parameters
cdbuff: buffer containing central directory
void XrdEc::Reader::Close ( XrdCl::ResponseHandler handler,
uint16_t  timeout = 0 
)

Close the data object.

uint64_t XrdEc::Reader::GetSize ( )
inline
Returns
: get file size

References filesize.

bool XrdEc::Reader::IsMissing ( const std::string &  fn)
private

Check if chunk file name is missing.

void XrdEc::Reader::Open ( XrdCl::ResponseHandler handler,
uint16_t  timeout = 0 
)

Open the erasure coded / striped object

Parameters
handler: user callback
bool XrdEc::Reader::ParseMetadata ( XrdCl::ChunkInfo ch)
private

Parse metadata from chunk info object

Parameters
ch: chunk info object returned by a read operation
void XrdEc::Reader::Read ( uint64_t  offset,
uint32_t  length,
void *  buffer,
XrdCl::ResponseHandler handler,
uint16_t  timeout 
)

Read data from the data object

Parameters
offset: offset of the data to be read
length: length of the data to be read
buffer: buffer for the data to be read
handler: user callback
void XrdEc::Reader::Read ( size_t  blknb,
size_t  strpnb,
buffer_t buffer,
callback_t  cb,
uint16_t  timeout = 0 
)
private

Read data from given stripes from given block

Parameters
blknb: number of the block
strpnb: number of stripe in the block
buffer: buffer for the data
cb: callback
timeout: operation timeout
XrdCl::Pipeline XrdEc::Reader::ReadMetadata ( size_t  index)
private

Read metadata for the object

Parameters
index: placement's index
XrdCl::Pipeline XrdEc::Reader::ReadSize ( size_t  index)
private

Read size from xattr

Parameters
index: placement's index

Friends And Related Function Documentation

friend class ::MicroTest
friend
friend struct block_t
friend

Member Data Documentation

std::mutex XrdEc::Reader::blkmtx
private
std::shared_ptr<block_t> XrdEc::Reader::block
private
dataarchs_t XrdEc::Reader::dataarchs
private
uint64_t XrdEc::Reader::filesize
private

Referenced by GetSize().

size_t XrdEc::Reader::lstblk
private
metadata_t XrdEc::Reader::metadata
private
missing_t XrdEc::Reader::missing
private
ObjCfg& XrdEc::Reader::objcfg
private
urlmap_t XrdEc::Reader::urlmap
private

The documentation for this class was generated from the following file: