xrootd
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
XrdSfsNativeFile Class Reference

#include <XrdSfsNative.hh>

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

Public Member Functions

int open (const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecClientName *client=0, const char *opaque=0)
 
int close ()
 
int fctl (const int cmd, const char *args, XrdOucErrInfo &out_error)
 
const char * FName ()
 
int getMmap (void **Addr, off_t &Size)
 
int read (XrdSfsFileOffset fileOffset, XrdSfsXferSize preread_sz)
 
XrdSfsXferSize read (XrdSfsFileOffset fileOffset, char *buffer, XrdSfsXferSize buffer_size)
 
int read (XrdSfsAio *aioparm)
 
XrdSfsXferSize readv (XrdOucIOVec *readV, int readCount)
 
XrdSfsXferSize write (XrdSfsFileOffset fileOffset, const char *buffer, XrdSfsXferSize buffer_size)
 
int write (XrdSfsAio *aioparm)
 
int sync ()
 
int sync (XrdSfsAio *aiop)
 
int stat (struct stat *buf)
 
int truncate (XrdSfsFileOffset fileOffset)
 
int getCXinfo (char cxtype[4], int &cxrsz)
 
 XrdSfsNativeFile (char *user=0, int monid=0)
 
 ~XrdSfsNativeFile ()
 
virtual int fctl (const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
 
virtual int fctl (const int cmd, int alen, const char *args, const XrdSecEntity *client=0)
 
- Public Member Functions inherited from XrdSfsFile
virtual int open (const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)=0
 
virtual int checkpoint (cpAct act, struct iov *range=0, int n=0)
 
virtual XrdSfsXferSize pgRead (XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize rdlen, uint32_t *csvec, uint64_t opts=0)
 
virtual int pgRead (XrdSfsAio *aioparm, uint64_t opts=0)
 
virtual XrdSfsXferSize pgWrite (XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize wrlen, uint32_t *csvec, uint64_t opts=0)
 
virtual int pgWrite (XrdSfsAio *aioparm, uint64_t opts=0)
 
virtual int SendData (XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
 
virtual XrdSfsXferSize writev (XrdOucIOVec *writeV, int wdvCnt)
 
virtual void setXio (XrdSfsXio *xioP)
 
 XrdSfsFile (const char *user=0, int MonID=0)
 
 XrdSfsFile (XrdSfsFile &wrapF)
 
 XrdSfsFile (XrdOucErrInfo &eInfo)
 
virtual ~XrdSfsFile ()
 Destructor.
 

Private Attributes

int oh
 
char * fname
 

Additional Inherited Members

- Public Types inherited from XrdSfsFile
enum  cpAct {
  cpCreate =0 , cpDelete , cpRestore , cpQuery ,
  cpTrunc , cpWrite
}
 
- Public Attributes inherited from XrdSfsFile
XrdOucErrInfoerror
 
- Static Public Attributes inherited from XrdSfsFile
static const uint64_t Verify = 0x8000000000000000ULL
 Options for pgRead() and pgWrite() as noted below.
 

Constructor & Destructor Documentation

◆ XrdSfsNativeFile()

XrdSfsNativeFile::XrdSfsNativeFile ( char *  user = 0,
int  monid = 0 
)
inline

References fname, and oh.

◆ ~XrdSfsNativeFile()

XrdSfsNativeFile::~XrdSfsNativeFile ( )
inline

References close(), and oh.

Member Function Documentation

◆ close()

int XrdSfsNativeFile::close ( )
virtual

Close the file.

Returns
One of SFS_OK or SFS_ERROR.

Implements XrdSfsFile.

Referenced by ~XrdSfsNativeFile().

◆ fctl() [1/3]

virtual int XrdSfsFile::fctl ( const int  cmd,
const char *  args,
XrdOucErrInfo eInfo 
)
virtual

Execute a special operation on the file (version 1)

Parameters
cmd- The operation to be performed (see below). SFS_FCTL_GETFD Return file descriptor if possible SFS_FCTL_STATV Reserved for future use.
args- specific arguments to cmd SFS_FCTL_GETFD Set to zero.
eInfo- The object where error info or results are to be returned. This is legacy and the error onject may be used as well.
Returns
If an error occurs or the operation is not support, SFS_ERROR should be returned with error.code set to errno. Otherwise, SFS_FCTL_GETFD error.code holds the real file descriptor number If the value is negative, sendfile() is not used. If the value is SFS_SFIO_FDVAL then the SendData() method is used for future read requests.

Implements XrdSfsFile.

◆ fctl() [2/3]

int XrdSfsNativeFile::fctl ( const int  cmd,
const char *  args,
XrdOucErrInfo eInfo 
)
virtual

Execute a special operation on the file (version 1)

Parameters
cmd- The operation to be performed (see below). SFS_FCTL_GETFD Return file descriptor if possible SFS_FCTL_STATV Reserved for future use.
args- specific arguments to cmd SFS_FCTL_GETFD Set to zero.
eInfo- The object where error info or results are to be returned. This is legacy and the error onject may be used as well.
Returns
If an error occurs or the operation is not support, SFS_ERROR should be returned with error.code set to errno. Otherwise, SFS_FCTL_GETFD error.code holds the real file descriptor number If the value is negative, sendfile() is not used. If the value is SFS_SFIO_FDVAL then the SendData() method is used for future read requests.

Implements XrdSfsFile.

◆ fctl() [3/3]

virtual int XrdSfsFile::fctl ( const int  cmd,
int  alen,
const char *  args,
const XrdSecEntity client = 0 
)
virtual

Execute a special operation on the file (version 2)

Parameters
cmd- The operation to be performed: SFS_FCTL_SPEC1 Perform implementation defined action
alen- Length of data pointed to by args.
args- Data sent with request, zero if alen is zero.
client- Client's identify (see common description).
Returns
SFS_OK a null response is sent.
SFS_DATA error.code length of the data to be sent. error.message contains the data to be sent. o/w one of SFS_ERROR, SFS_REDIRECT, or SFS_STALL.

Reimplemented from XrdSfsFile.

◆ FName()

const char * XrdSfsNativeFile::FName ( )
inlinevirtual

Get the file path.

Returns
Null terminated string of the path used in open().

Implements XrdSfsFile.

References fname.

◆ getCXinfo()

int XrdSfsNativeFile::getCXinfo ( char  cxtype[4],
int &  cxrsz 
)
inlinevirtual

Get compression information for the file.

Parameters
cxtype- Place where the compression algorithm name is to be placed
cxrsz- Place where the compression page size is to be returned
Returns
One of the valid SFS return codes described above. If the file is not compressed or an error is returned, cxrsz must be set to 0.

Implements XrdSfsFile.

◆ getMmap()

int XrdSfsNativeFile::getMmap ( void **  Addr,
off_t &  Size 
)
inlinevirtual

Get file's memory mapping if one exists (memory mapped files only).

Parameters
Addr- Place where the starting memory address is returned.
Size- Place where the file's size is returned.
Returns
SFS_OK when the file is memory mapped or any other code otherwise.

Implements XrdSfsFile.

References SFS_OK.

◆ open()

int XrdSfsNativeFile::open ( const char *  fileName,
XrdSfsFileOpenMode  openMode,
mode_t  createMode,
const XrdSecClientName client = 0,
const char *  opaque = 0 
)

◆ read() [1/3]

int XrdSfsNativeFile::read ( XrdSfsAio aioparm)
virtual

Read file bytes using asynchronous I/O.

Parameters
aioparm- Pointer to async I/O object controlling the I/O.
Returns
SFS_OK Request accepted and will be scheduled.
SFS_ERROR File could not be read, error holds the reason.

Implements XrdSfsFile.

◆ read() [2/3]

XrdSfsXferSize XrdSfsNativeFile::read ( XrdSfsFileOffset  offset,
char *  buffer,
XrdSfsXferSize  size 
)
virtual

Read file bytes into a buffer.

Parameters
offset- The offset where the read is to start.
buffer- pointer to buffer where the bytes are to be placed.
size- The number of bytes to read.
Returns
>= 0 The number of bytes that placed in buffer.
SFS_ERROR File could not be read, error holds the reason.

Implements XrdSfsFile.

◆ read() [3/3]

int XrdSfsNativeFile::read ( XrdSfsFileOffset  offset,
XrdSfsXferSize  size 
)
inlinevirtual

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 The number of bytes that will be pre-read.
SFS_ERROR File could not be preread, error holds the reason.

Implements XrdSfsFile.

References SFS_OK.

◆ readv()

XrdSfsXferSize XrdSfsNativeFile::readv ( XrdOucIOVec readV,
int  rdvCnt 
)
virtual

Given an array of read requests (size rdvCnt), read them from the file and place the contents consecutively in the provided buffer. A dumb default implementation is supplied but should be replaced to increase performance.

Parameters
readVpointer to the array of read requests.
rdvCntthe number of elements in readV.
Returns
>=0 The numbe of bytes placed into the buffer.
SFS_ERROR File could not be read, error holds the reason.

Reimplemented from XrdSfsFile.

◆ stat()

int XrdSfsNativeFile::stat ( struct stat *  buf)
virtual

Return state information on the file.

Parameters
buf- Pointer to the structure where info it to be returned.
Returns
One of SFS_OK, SFS_ERROR, SFS_REDIRECT, or SFS_STALL. When SFS_OK is returned, buf must hold stat information.

Implements XrdSfsFile.

◆ sync() [1/2]

int XrdSfsNativeFile::sync ( )
virtual

Make sure all outstanding data is actually written to the file (sync).

Returns
One of SFS_OK, SFS_ERROR, SFS_REDIRECT, SFS_STALL, or SFS_STARTED

Implements XrdSfsFile.

◆ sync() [2/2]

int XrdSfsNativeFile::sync ( XrdSfsAio aiop)
virtual

Make sure all outstanding data is actually written to the file (async).

Returns
SFS_OK Request accepted and will be scheduled.
SFS_ERROR Request could not be accepted, return error has reason.

Implements XrdSfsFile.

◆ truncate()

int XrdSfsNativeFile::truncate ( XrdSfsFileOffset  fsize)
virtual

Truncate the file.

Parameters
fsize- The size that the file is to have.
Returns
One of SFS_OK, SFS_ERROR, SFS_REDIRECT, or SFS_STALL

Implements XrdSfsFile.

◆ write() [1/2]

int XrdSfsNativeFile::write ( XrdSfsAio aioparm)
virtual

Write file bytes using asynchronous I/O.

Parameters
aioparm- Pointer to async I/O object controlling the I/O.
Returns
0 Request accepted and will be scheduled.
!0 Request not accepted, returned value is errno.

Implements XrdSfsFile.

◆ write() [2/2]

XrdSfsXferSize XrdSfsNativeFile::write ( XrdSfsFileOffset  offset,
const char *  buffer,
XrdSfsXferSize  size 
)
virtual

Write file bytes from a buffer.

Parameters
offset- The offset where the write is to start.
buffer- pointer to buffer where the bytes reside.
size- The number of bytes to write.
Returns
>= 0 The number of bytes that were written.
SFS_ERROR File could not be written, error holds the reason.

Implements XrdSfsFile.

Member Data Documentation

◆ fname

char* XrdSfsNativeFile::fname
private

Referenced by FName(), and XrdSfsNativeFile().

◆ oh

int XrdSfsNativeFile::oh
private

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