xrootd
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Friends | List of all members
XrdOssCsiFile Class Reference

#include <XrdOssCsi.hh>

Inheritance diagram for XrdOssCsiFile:
Inheritance graph
[legend]
Collaboration diagram for XrdOssCsiFile:
Collaboration graph
[legend]

Classes

struct  puMapItem_t
 

Public Member Functions

virtual int Close (long long *retsz=0)
 
virtual int Open (const char *, int, mode_t, XrdOucEnv &)
 
virtual off_t getMmap (void **addr)
 
virtual int getFD ()
 
virtual void Flush ()
 Flush filesystem cached pages for this file (used for checksums).
 
virtual int Fstat (struct stat *)
 
virtual int Fsync ()
 
virtual int Fsync (XrdSfsAio *)
 
virtual int Ftruncate (unsigned long long)
 
virtual ssize_t Read (off_t, size_t)
 
virtual ssize_t Read (void *, off_t, size_t)
 
virtual int Read (XrdSfsAio *)
 
virtual ssize_t ReadRaw (void *, off_t, size_t)
 
virtual ssize_t ReadV (XrdOucIOVec *readV, int n)
 
virtual ssize_t Write (const void *, off_t, size_t)
 
virtual int Write (XrdSfsAio *)
 
virtual ssize_t WriteV (XrdOucIOVec *writeV, int n)
 
virtual ssize_t pgRead (void *, off_t, size_t, uint32_t *, uint64_t)
 
virtual int pgRead (XrdSfsAio *, uint64_t)
 
virtual ssize_t pgWrite (void *, off_t, size_t, uint32_t *, uint64_t)
 
virtual int pgWrite (XrdSfsAio *, uint64_t)
 
 XrdOssCsiFile (XrdOss *parent, const char *tid, XrdOssCsiConfig &cf)
 
virtual ~XrdOssCsiFile ()
 
void aioInc ()
 
void aioDec ()
 
void aioWait ()
 
int VerificationStatus ()
 
XrdOssCsiPagesPages ()
 
- Public Member Functions inherited from XrdOssDFHandler
virtual int Opendir (const char *dir_path, XrdOucEnv &Env)
 
virtual int Readdir (char *buff, int blen)
 
virtual int StatRet (struct stat *buff)
 
virtual int Fchmod (mode_t Mode)
 
virtual int isCompressed (char *cxidp=0)
 
virtual int Fctl (int cmd, int alen, const char *args, char **resp=0)
 
virtual const char * getTID ()
 
 XrdOssDFHandler (XrdOssDF *successor)
 
virtual ~XrdOssDFHandler ()
 
- Public Member Functions inherited from XrdOssDF
uint16_t DFType ()
 
 XrdOssDF (const char *tid="", uint16_t dftype=0, int fdnum=-1)
 
virtual ~XrdOssDF ()
 

Static Public Member Functions

static int mapRelease (std::shared_ptr< puMapItem_t > &, XrdSysMutexHelper *plck=NULL)
 
static void mapTake (const std::string &, std::shared_ptr< puMapItem_t > &, bool create=true)
 

Static Public Attributes

static XrdSysMutex pumtx_
 
static std::unordered_map< std::string, std::shared_ptr< puMapItem_t > > pumap_
 
- Static Public Attributes inherited from XrdOssDF
static const uint64_t Verify = 0x8000000000000000ULL
 all: Verify checksums
 
static const uint64_t doCalc = 0x4000000000000000ULL
 pgw: Calculate checksums
 
static const uint16_t DF_isDir = 0x0001
 Object is for a directory.
 
static const uint16_t DF_isFile = 0x0002
 Object is for a file.
 
static const uint16_t DF_isProxy = 0x0010
 Object is a proxy object.
 
static const int Fctl_ckpObj = 0
 
static const int Fctl_utimes = 1
 

Private Member Functions

int resyncSizes ()
 
int pageMapClose ()
 
int pageAndFileOpen (const char *, const int, const int, const mode_t, XrdOucEnv &)
 
int createPageUpdater (int, XrdOucEnv &)
 

Private Attributes

XrdOssparentOss_
 
const char * tident
 
std::shared_ptr< puMapItem_tpmi_
 
XrdOssCsiFileAioStore aiostore_
 
XrdOssCsiConfigconfig_
 
bool rdonly_
 
XrdSysCondVar aioCntCond_
 
int aioCnt_
 
int aioCntWaiters_
 

Friends

class XrdOssCsiFileAio
 
class XrdOssCsiFileAioJob
 

Additional Inherited Members

- Protected Attributes inherited from XrdOssDFHandler
XrdOssDFsuccessor_
 
- Protected Attributes inherited from XrdOssDF
const char * tident
 
off_t pgwEOF
 
int fd
 
uint16_t dfType
 
short rsvd
 

Constructor & Destructor Documentation

◆ XrdOssCsiFile()

XrdOssCsiFile::XrdOssCsiFile ( XrdOss parent,
const char *  tid,
XrdOssCsiConfig cf 
)
inline

◆ ~XrdOssCsiFile()

virtual XrdOssCsiFile::~XrdOssCsiFile ( )
virtual

Member Function Documentation

◆ aioDec()

void XrdOssCsiFile::aioDec ( )
inline

◆ aioInc()

void XrdOssCsiFile::aioInc ( )
inline

◆ aioWait()

void XrdOssCsiFile::aioWait ( )
inline

◆ Close()

virtual int XrdOssCsiFile::Close ( long long *  retsz = 0)
virtual

Close a directory or file.

Parameters
retszIf not nil, where the size of the file is to be returned.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ createPageUpdater()

int XrdOssCsiFile::createPageUpdater ( int  ,
XrdOucEnv  
)
private

◆ Flush()

virtual void XrdOssCsiFile::Flush ( )
virtual

Flush filesystem cached pages for this file (used for checksums).

Reimplemented from XrdOssDFHandler.

◆ Fstat()

virtual int XrdOssCsiFile::Fstat ( struct stat buf)
virtual

Return state information for this file.

Parameters
buf- Pointer to the structure where info it to be returned.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ Fsync() [1/2]

virtual int XrdOssCsiFile::Fsync ( void  )
virtual

Synchronize associated file with media (synchronous).

Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ Fsync() [2/2]

virtual int XrdOssCsiFile::Fsync ( XrdSfsAio aiop)
virtual

Synchronize associated file with media (asynchronous).

Parameters
aiop- Pointer to async I/O request object.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ Ftruncate()

virtual int XrdOssCsiFile::Ftruncate ( unsigned long long  flen)
virtual

Set the size of the associated file.

Parameters
flen- The new size of the file.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ getFD()

virtual int XrdOssCsiFile::getFD ( )
inlinevirtual

Return the underlying file descriptor.

Returns
-1 if there is no file descriptor or a non-negative FD number.

Reimplemented from XrdOssDFHandler.

◆ getMmap()

virtual off_t XrdOssCsiFile::getMmap ( void **  addr)
inlinevirtual

Return the memory mapped characteristics of the file.

Parameters
addr- Pointer to where the memory mapped address is to be returned.
Returns
If mapped, the size of the file is returned and it memory location is placed in addr. Otherwise, addr is set to zero and zero is returned. Note that zero length files cannot be memory mapped.

Reimplemented from XrdOssDFHandler.

◆ mapRelease()

static int XrdOssCsiFile::mapRelease ( std::shared_ptr< puMapItem_t > &  ,
XrdSysMutexHelper plck = NULL 
)
static

◆ mapTake()

static void XrdOssCsiFile::mapTake ( const std::string &  ,
std::shared_ptr< puMapItem_t > &  ,
bool  create = true 
)
static

◆ Open()

virtual int XrdOssCsiFile::Open ( const char *  path,
int  Oflag,
mode_t  Mode,
XrdOucEnv env 
)
virtual

Open a file.

Parameters
path- Pointer to the path of the file to be opened.
Oflag- Standard open flags.
Mode- File open mode (ignored unless creating a file).
env- Reference to environmental information.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ pageAndFileOpen()

int XrdOssCsiFile::pageAndFileOpen ( const char *  ,
const int  ,
const int  ,
const mode_t  ,
XrdOucEnv  
)
private

◆ pageMapClose()

int XrdOssCsiFile::pageMapClose ( )
private

◆ Pages()

XrdOssCsiPages * XrdOssCsiFile::Pages ( )
inline

◆ pgRead() [1/2]

virtual ssize_t XrdOssCsiFile::pgRead ( void *  ,
off_t  ,
size_t  ,
uint32_t *  ,
uint64_t   
)
virtual

Reimplemented from XrdOssDFHandler.

◆ pgRead() [2/2]

virtual int XrdOssCsiFile::pgRead ( XrdSfsAio aioparm,
uint64_t  opts 
)
virtual

Read file pages and checksums using asynchronous I/O.

Parameters
aioparm- Pointer to async I/O object controlling the I/O.
opts- Processing options (see above).
Returns
0 upon if request started success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ pgWrite() [1/2]

virtual ssize_t XrdOssCsiFile::pgWrite ( void *  buffer,
off_t  offset,
size_t  wrlen,
uint32_t *  csvec,
uint64_t  opts 
)
virtual

Write file pages into a file with corresponding checksums.

Parameters
buffer- pointer to buffer containing the bytes to write.
offset- The offset where the write is to start.
wrlen- The number of bytes to write.
csvec- A vector which contains the corresponding CRC32 checksum for each page. See XrdOucPgrwUtils::csNum() for sizing.
opts- Processing options (see above).
Returns
>= 0 The number of bytes written upon success. or -errno or -osserr upon failure. (see XrdOssError.hh).
< 0 -errno or -osserr upon failure. (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ pgWrite() [2/2]

virtual int XrdOssCsiFile::pgWrite ( XrdSfsAio aioparm,
uint64_t  opts 
)
virtual

Write file pages and checksums using asynchronous I/O.

Parameters
aioparm- Pointer to async I/O object controlling the I/O.
opts- Processing options (see above).
Returns
0 upon if request started success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ Read() [1/3]

virtual ssize_t XrdOssCsiFile::Read ( off_t  offset,
size_t  size 
)
virtual

Preread file blocks into the file system cache.

Parameters
offset- The offset where the read is to start.
size- The number of bytes to pre-read.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ Read() [2/3]

virtual ssize_t XrdOssCsiFile::Read ( void *  buffer,
off_t  offset,
size_t  size 
)
virtual

Read file bytes into a buffer.

Parameters
buffer- pointer to buffer where the bytes are to be placed.
offset- The offset where the read is to start.
size- The number of bytes to read.
Returns
>= 0 The number of bytes that placed in buffer.
< 0 -errno or -osserr upon failure (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ Read() [3/3]

virtual int XrdOssCsiFile::Read ( XrdSfsAio aiop)
virtual

Read file bytes using asynchronous I/O.

Parameters
aiop- Pointer to async I/O object controlling the I/O.
Returns
0 upon if request started success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ ReadRaw()

virtual ssize_t XrdOssCsiFile::ReadRaw ( void *  buffer,
off_t  offset,
size_t  size 
)
virtual

Read uncompressed file bytes into a buffer.

Parameters
buffer- pointer to buffer where the bytes are to be placed.
offset- The offset where the read is to start.
size- The number of bytes to read.
Returns
>= 0 The number of bytes that placed in buffer.
< 0 -errno or -osserr upon failure (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ ReadV()

virtual ssize_t XrdOssCsiFile::ReadV ( XrdOucIOVec readV,
int  rdvcnt 
)
virtual

Read file bytes as directed by the read vector.

Parameters
readVpointer to the array of read requests.
rdvcntthe number of elements in readV.
Returns
>=0 The numbe of bytes read.
< 0 -errno or -osserr upon failure (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ resyncSizes()

int XrdOssCsiFile::resyncSizes ( )
private

◆ VerificationStatus()

int XrdOssCsiFile::VerificationStatus ( )

◆ Write() [1/2]

virtual ssize_t XrdOssCsiFile::Write ( const void *  buffer,
off_t  offset,
size_t  size 
)
virtual

Write file bytes from a buffer.

Parameters
buffer- pointer to buffer where the bytes reside.
offset- The offset where the write is to start.
size- The number of bytes to write.
Returns
>= 0 The number of bytes that were written.
< 0 -errno or -osserr upon failure (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ Write() [2/2]

virtual int XrdOssCsiFile::Write ( XrdSfsAio aiop)
virtual

Write file bytes using asynchronous I/O.

Parameters
aiop- Pointer to async I/O object controlling the I/O.
Returns
0 upon if request started success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

◆ WriteV()

virtual ssize_t XrdOssCsiFile::WriteV ( XrdOucIOVec writeV,
int  wrvcnt 
)
virtual

Write file bytes as directed by the write vector.

Parameters
writeVpointer to the array of write requests.
wrvcntthe number of elements in writeV.
Returns
>=0 The numbe of bytes read.
< 0 -errno or -osserr upon failure (see XrdOssError.hh).

Reimplemented from XrdOssDFHandler.

Friends And Related Symbol Documentation

◆ XrdOssCsiFileAio

friend class XrdOssCsiFileAio
friend

◆ XrdOssCsiFileAioJob

friend class XrdOssCsiFileAioJob
friend

Member Data Documentation

◆ aioCnt_

int XrdOssCsiFile::aioCnt_
private

Referenced by aioDec(), aioInc(), and aioWait().

◆ aioCntCond_

XrdSysCondVar XrdOssCsiFile::aioCntCond_
private

Referenced by aioDec(), aioInc(), and aioWait().

◆ aioCntWaiters_

int XrdOssCsiFile::aioCntWaiters_
private

Referenced by aioDec(), aioInc(), and aioWait().

◆ aiostore_

XrdOssCsiFileAioStore XrdOssCsiFile::aiostore_
private

◆ config_

XrdOssCsiConfig& XrdOssCsiFile::config_
private

◆ parentOss_

XrdOss* XrdOssCsiFile::parentOss_
private

◆ pmi_

std::shared_ptr<puMapItem_t> XrdOssCsiFile::pmi_
private

Referenced by Pages().

◆ pumap_

std::unordered_map<std::string, std::shared_ptr<puMapItem_t> > XrdOssCsiFile::pumap_
static

◆ pumtx_

XrdSysMutex XrdOssCsiFile::pumtx_
static

◆ rdonly_

bool XrdOssCsiFile::rdonly_
private

◆ tident

const char* XrdOssCsiFile::tident
private

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