XrdSsiFile Class Reference

#include <XrdSsiFile.hh>

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

List of all members.

Public Member Functions

int open (const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)
int close ()
int fctl (const int cmd, const char *args, XrdOucErrInfo &out_error)
int fctl (const int cmd, int alen, const char *args, const XrdSecEntity *client)
const char * FName ()
int getCXinfo (char cxtype[4], int &cxrsz)
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)
int SendData (XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
void setXio (XrdSfsXio *xP)
int stat (struct stat *buf)
int sync ()
int sync (XrdSfsAio *aiop)
int truncate (XrdSfsFileOffset fileOffset)
XrdSfsXferSize write (XrdSfsFileOffset fileOffset, const char *buffer, XrdSfsXferSize buffer_size)
int write (XrdSfsAio *aioparm)
 XrdSsiFile (const char *user, int MonID)
virtual ~XrdSsiFile ()

Private Attributes

XrdSfsFilefsFile
XrdSsiFileSessfSessP
XrdOucErrInfo myEInfo

Constructor & Destructor Documentation

XrdSsiFile::XrdSsiFile ( const char *  user,
int  MonID 
) [inline]
virtual XrdSsiFile::~XrdSsiFile (  )  [virtual]

Member Function Documentation

int XrdSsiFile::close (  )  [virtual]

Close the file.

Returns:
One of SFS_OK or SFS_ERROR.

Implements XrdSfsFile.

int XrdSsiFile::fctl ( const int  cmd,
int  alen,
const char *  args,
const XrdSecEntity client 
) [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.

int XrdSsiFile::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.

const char* XrdSsiFile::FName (  )  [virtual]

Get the file path.

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

Implements XrdSfsFile.

int XrdSsiFile::getCXinfo ( char  cxtype[4],
int &  cxrsz 
) [virtual]

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.

int XrdSsiFile::getMmap ( void **  Addr,
off_t &  Size 
) [virtual]

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.

int XrdSsiFile::open ( const char *  fileName,
XrdSfsFileOpenMode  openMode,
mode_t  createMode,
const XrdSecEntity client = 0,
const char *  opaque = 0 
) [virtual]

Open a file.

Parameters:
path - Pointer to the path of the file to be opened.
oMode - Flags indicating how the open is to be handled. SFS_O_CREAT create the file SFS_O_MKPTH Make directory path if missing SFS_O_NOWAIT do not impose operational delays SFS_O_NOTPC do not allow TPC operation SFS_O_POSC persist only on successful close SFS_O_RAWIO allow client-side decompression SFS_O_RDONLY open read/only SFS_O_RDWR open read/write SFS_O_REPLICA Open for replication SFS_O_RESET Reset any cached information SFS_O_TRUNC truncate existing file to zero length SFS_O_WRONLY open write/only
cMode - The file's mode if it will be created.
client - Client's identify (see common description).
opaque - path's CGI information (see common description).
Returns:
One of SFS_OK, SFS_ERROR, SFS_REDIRECT, SFS_STALL, or SFS_STARTED

Implements XrdSfsFile.

int XrdSsiFile::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.

XrdSfsXferSize XrdSsiFile::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.

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

Implements XrdSfsFile.

XrdSfsXferSize XrdSsiFile::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:
readV pointer to the array of read requests.
rdvcnt the 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.

int XrdSsiFile::SendData ( XrdSfsDio sfDio,
XrdSfsFileOffset  offset,
XrdSfsXferSize  size 
) [virtual]

Send file bytes via a XrdSfsDio sendfile object to a client (optional).

Parameters:
sfDio - Pointer to the sendfile object for data transfer.
offset - The offset where the read is to start.
size - The number of bytes to read and send.
Returns:
SFS_ERROR File not read, error object has reason.
SFS_OK Either data has been successfully sent via sfDio or no data has been sent and a normal read() should be issued.

Reimplemented from XrdSfsFile.

void XrdSsiFile::setXio ( XrdSfsXio xioP  )  [virtual]

Enable exchange buffer I/O for write calls.

Parameters:
- Pointer to the XrdSfsXio object to be used for buffer exchanges.

Reimplemented from XrdSfsFile.

int XrdSsiFile::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.

int XrdSsiFile::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.

int XrdSsiFile::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.

int XrdSsiFile::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.

int XrdSsiFile::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.

XrdSfsXferSize XrdSsiFile::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


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