#include <XrdSfsInterface.hh>
|
virtual int | open (const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)=0 |
|
virtual int | close ()=0 |
|
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) |
|
virtual const char * | FName ()=0 |
|
virtual int | getMmap (void **Addr, off_t &Size)=0 |
|
virtual XrdSfsXferSize | read (XrdSfsFileOffset offset, XrdSfsXferSize size)=0 |
|
virtual XrdSfsXferSize | read (XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize size)=0 |
|
virtual XrdSfsXferSize | read (XrdSfsAio *aioparm)=0 |
|
virtual XrdSfsXferSize | readv (XrdOucIOVec *readV, int rdvCnt) |
|
virtual int | SendData (XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size) |
|
virtual XrdSfsXferSize | write (XrdSfsFileOffset offset, const char *buffer, XrdSfsXferSize size)=0 |
|
virtual int | write (XrdSfsAio *aioparm)=0 |
|
virtual XrdSfsXferSize | writev (XrdOucIOVec *writeV, int wdvCnt) |
|
virtual int | stat (struct stat *buf)=0 |
|
virtual int | sync ()=0 |
|
virtual int | sync (XrdSfsAio *aiop)=0 |
|
virtual int | truncate (XrdSfsFileOffset fsize)=0 |
|
virtual int | getCXinfo (char cxtype[4], int &cxrsz)=0 |
|
virtual void | setXio (XrdSfsXio *xioP) |
|
| XrdSfsFile (const char *user=0, int MonID=0) |
|
virtual | ~XrdSfsFile () |
| Destructor. More...
|
|
◆ XrdSfsFile()
XrdSfsFile::XrdSfsFile |
( |
const char * |
user = 0 , |
|
|
int |
MonID = 0 |
|
) |
| |
|
inline |
Constructor (user and MonID are the ones passed to newFile()!)
- Parameters
-
user | - Text identifying the client responsible for this call. The pointer may be null if identification is missing. |
MonID | - The monitoring identifier assigned to this and all future requests using the returned object. |
◆ ~XrdSfsFile()
virtual XrdSfsFile::~XrdSfsFile |
( |
| ) |
|
|
inlinevirtual |
◆ close()
virtual int XrdSfsFile::close |
( |
| ) |
|
|
pure virtual |
◆ fctl() [1/2]
virtual int XrdSfsFile::fctl |
( |
const int |
cmd, |
|
|
const char * |
args, |
|
|
XrdOucErrInfo & |
eInfo |
|
) |
| |
|
pure 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.
Implemented in XrdThrottle::File, XrdSsiFile, XrdSfsNativeFile, XrdOfsFile, XrdDigFile, and XrdBwmFile.
◆ fctl() [2/2]
virtual int XrdSfsFile::fctl |
( |
const int |
cmd, |
|
|
int |
alen, |
|
|
const char * |
args, |
|
|
const XrdSecEntity * |
client = 0 |
|
) |
| |
|
inlinevirtual |
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 in XrdOfsFile, and XrdSsiFile.
◆ FName()
virtual const char* XrdSfsFile::FName |
( |
| ) |
|
|
pure virtual |
◆ getCXinfo()
virtual int XrdSfsFile::getCXinfo |
( |
char |
cxtype[4], |
|
|
int & |
cxrsz |
|
) |
| |
|
pure 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.
Implemented in XrdThrottle::File, XrdSsiFile, XrdSfsNativeFile, XrdOfsFile, XrdDigFile, and XrdBwmFile.
◆ getMmap()
virtual int XrdSfsFile::getMmap |
( |
void ** |
Addr, |
|
|
off_t & |
Size |
|
) |
| |
|
pure virtual |
◆ open()
virtual int XrdSfsFile::open |
( |
const char * |
fileName, |
|
|
XrdSfsFileOpenMode |
openMode, |
|
|
mode_t |
createMode, |
|
|
const XrdSecEntity * |
client = 0 , |
|
|
const char * |
opaque = 0 |
|
) |
| |
|
pure 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_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
Implemented in XrdSsiFile, XrdThrottle::File, XrdOfsFile, and XrdBwmFile.
◆ read() [1/3]
◆ read() [2/3]
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.
Implemented in XrdThrottle::File, XrdSsiFile, XrdSfsNativeFile, XrdOfsFile, XrdDigFile, and XrdBwmFile.
◆ read() [3/3]
◆ readv()
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 in XrdSsiFile, XrdSfsNativeFile, XrdOfsFile, and XrdDigFile.
References error, read(), XrdOucErrInfo::setErrInfo(), and SFS_ERROR.
◆ SendData()
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 in XrdThrottle::File, and XrdSsiFile.
References SFS_OK.
◆ setXio()
virtual void XrdSfsFile::setXio |
( |
XrdSfsXio * |
xioP | ) |
|
|
inlinevirtual |
Enable exchange buffer I/O for write calls.
- Parameters
-
- | Pointer to the XrdSfsXio object to be used for buffer exchanges. |
Reimplemented in XrdSsiFile.
◆ stat()
virtual int XrdSfsFile::stat |
( |
struct stat * |
buf | ) |
|
|
pure virtual |
◆ sync() [1/2]
virtual int XrdSfsFile::sync |
( |
| ) |
|
|
pure virtual |
◆ sync() [2/2]
virtual int XrdSfsFile::sync |
( |
XrdSfsAio * |
aiop | ) |
|
|
pure virtual |
◆ truncate()
◆ write() [1/2]
virtual int XrdSfsFile::write |
( |
XrdSfsAio * |
aioparm | ) |
|
|
pure virtual |
◆ write() [2/2]
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.
Implemented in XrdThrottle::File, XrdSsiFile, XrdSfsNativeFile, XrdOfsFile, XrdDigFile, and XrdBwmFile.
Referenced by writev().
◆ writev()
Given an array of write requests (size wdvcnt), write them to the file from the provided associated buffer. A dumb default implementation is supplied but should be replaced to increase performance.
- Parameters
-
writeV | pointer to the array of write requests. |
wdvcnt | the number of elements in writeV. |
- Returns
- >=0 The total number of bytes written to the file.
-
SFS_ERROR File could not be written, error holds the reason.
References error, XrdOucErrInfo::setErrInfo(), SFS_ERROR, and write().
◆ error
The error object is used to return details whenever something other than SFS_OK is returned from the methods in this class, when noted.
Referenced by readv(), and writev().
The documentation for this class was generated from the following file: