XrdPfc::IOFileBlock Class Reference

Downloads original file into multiple files, chunked into blocks. Only blocks that are asked for are downloaded. Handles read requests as they come along. More...

#include <XrdPfcIOFileBlock.hh>

Inheritance diagram for XrdPfc::IOFileBlock:
Inheritance graph
[legend]
Collaboration diagram for XrdPfc::IOFileBlock:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 IOFileBlock (XrdOucCacheIO *io, XrdOucCacheStats &stats, Cache &cache)
 ~IOFileBlock ()
bool ioActive ()
 Abstract virtual method of XrdPfcIO Called to check if destruction needs to be done in a separate task.
void DetachFinalize ()
 Abstract virtual method of XrdPfcIO Called to destruct the IO object after it is no longer used.
virtual int Read (char *Buffer, long long Offset, int Length)
virtual int Fstat (struct stat &sbuff)
virtual long long FSize ()

Private Member Functions

void GetBlockSizeFromPath ()
int initLocalStat ()
FilenewBlockFile (long long off, int blocksize)
void CloseInfoFile ()

Private Attributes

long long m_blocksize
 size of file-block
std::map< int, File * > m_blocks
 map of created blocks
XrdSysMutex m_mutex
 map mutex
struct stat * m_localStat
Info m_info
XrdOssDFm_info_file

Detailed Description

Downloads original file into multiple files, chunked into blocks. Only blocks that are asked for are downloaded. Handles read requests as they come along.


Constructor & Destructor Documentation

XrdPfc::IOFileBlock::IOFileBlock ( XrdOucCacheIO io,
XrdOucCacheStats stats,
Cache cache 
)
XrdPfc::IOFileBlock::~IOFileBlock (  ) 

Member Function Documentation

void XrdPfc::IOFileBlock::CloseInfoFile (  )  [private]
void XrdPfc::IOFileBlock::DetachFinalize (  )  [virtual]

Abstract virtual method of XrdPfcIO Called to destruct the IO object after it is no longer used.

Implements XrdPfc::IO.

virtual long long XrdPfc::IOFileBlock::FSize (  )  [virtual]

Obtain size of the file.

Returns:
Size of the file in bytes.

Implements XrdOucCacheIO.

virtual int XrdPfc::IOFileBlock::Fstat ( struct stat &  sbuff  )  [virtual]

Perform an fstat() operation (defaults to passthrough).

Parameters:
sbuff reference to the stat buffer to be filled in. Only fields st_size, st_blocks, st_mtime (st_atime and st_ctime may be set to st_mtime), st_ino, and st_mode need to be set. All other fields are preset and should not be changed.
Returns:
<0 - fstat failed, value is -errno. =0 - fstat succeeded, sbuff holds stat information. >0 - fstat could not be done, forward operation to next level.

Reimplemented from XrdOucCacheIO.

void XrdPfc::IOFileBlock::GetBlockSizeFromPath (  )  [private]
int XrdPfc::IOFileBlock::initLocalStat (  )  [private]
bool XrdPfc::IOFileBlock::ioActive (  )  [virtual]

Abstract virtual method of XrdPfcIO Called to check if destruction needs to be done in a separate task.

Implements XrdPfc::IO.

File* XrdPfc::IOFileBlock::newBlockFile ( long long  off,
int  blocksize 
) [private]
virtual int XrdPfc::IOFileBlock::Read ( char *  buff,
long long  offs,
int  rlen 
) [virtual]

Perform an synchronous read.

Parameters:
buff pointer to the buffer to receive the results. The buffer must remain valid until the callback is invoked.
offs the offset into the file.
rlen the number of bytes to read.
Returns:
< 0 - Read failed, value is -errno. >=0 - Read succeeded, value is number of bytes read.

Implements XrdOucCacheIO.


Member Data Documentation

std::map<int, File*> XrdPfc::IOFileBlock::m_blocks [private]

map of created blocks

long long XrdPfc::IOFileBlock::m_blocksize [private]

size of file-block

struct stat* XrdPfc::IOFileBlock::m_localStat [read, private]

map mutex


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 7 Jul 2020 for xrootd by  doxygen 1.6.1