#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 XrdOfsFile, XrdDigFile, XrdSfsNativeFile, XrdBwmFile, XrdSsiFile, and XrdThrottle::File.
◆ 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.
References SFS_OK.
◆ 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 XrdOfsFile, XrdDigFile, XrdSfsNativeFile, XrdBwmFile, XrdThrottle::File, and XrdSsiFile.
◆ 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, XrdOfsFile, XrdBwmFile, and XrdThrottle::File.
◆ 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 XrdOfsFile, XrdDigFile, XrdSfsNativeFile, XrdBwmFile, XrdSsiFile, and XrdThrottle::File.
◆ 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 XrdOfsFile, XrdDigFile, XrdSfsNativeFile, and XrdSsiFile.
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 XrdOfsFile, XrdDigFile, XrdSfsNativeFile, XrdBwmFile, XrdSsiFile, and XrdThrottle::File.
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: