#include <XrdOss.hh>
Public Member Functions | |
virtual int | Opendir (const char *path, XrdOucEnv &env) |
virtual int | Readdir (char *buff, int blen) |
virtual int | StatRet (struct stat *) |
virtual int | Fchmod (mode_t mode) |
virtual void | Flush () |
Flush filesystem cached pages for this file (used for checksums). | |
virtual int | Fstat (struct stat *buf) |
virtual int | Fsync () |
virtual int | Fsync (XrdSfsAio *aiop) |
virtual int | Ftruncate (unsigned long long) |
virtual off_t | getMmap (void **addr) |
virtual int | isCompressed (char *cxidp=0) |
virtual int | Open (const char *path, int Oflag, mode_t Mode, XrdOucEnv &env) |
virtual ssize_t | pgRead (void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts) |
virtual int | pgRead (XrdSfsAio *aioparm, uint64_t opts) |
virtual ssize_t | pgWrite (void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts) |
virtual int | pgWrite (XrdSfsAio *aoiparm, uint64_t opts) |
virtual ssize_t | Read (off_t offset, size_t size) |
virtual ssize_t | Read (void *buffer, off_t offset, size_t size) |
virtual int | Read (XrdSfsAio *aoip) |
virtual ssize_t | ReadRaw (void *buffer, off_t offset, size_t size) |
virtual ssize_t | ReadV (XrdOucIOVec *readV, int rdvcnt) |
virtual ssize_t | Write (const void *buffer, off_t offset, size_t size) |
virtual int | Write (XrdSfsAio *aiop) |
virtual ssize_t | WriteV (XrdOucIOVec *writeV, int wrvcnt) |
virtual int | Close (long long *retsz=0)=0 |
uint16_t | DFType () |
virtual int | Fctl (int cmd, int alen, const char *args, char **resp=0) |
virtual int | getFD () |
virtual const char * | getTID () |
XrdOssDF (const char *tid="", uint16_t dftype=0, int fdnum=-1) | |
virtual | ~XrdOssDF () |
Static Public Attributes | |
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. | |
Protected Attributes | |
const char * | tident |
off_t | pgwEOF |
int | fd |
uint16_t | dfType |
short | rsvd |
This class defines the object that handles directory as well as file oriented requests. It is instantiated for each file/dir to be opened. The object is obtained by calling newDir() or newFile() in class XrdOss. This allows flexibility on how to structure an oss plugin.
XrdOssDF::XrdOssDF | ( | const char * | tid = "" , |
|
uint16_t | dftype = 0 , |
|||
int | fdnum = -1 | |||
) | [inline] |
Constructor and Destructor
tid | - Pointer to the trace identifier. | |
dftype | - The type of the object. | |
fdnum | - The value for the file descriptor. |
virtual XrdOssDF::~XrdOssDF | ( | ) | [inline, virtual] |
virtual int XrdOssDF::Close | ( | long long * | retsz = 0 |
) | [pure virtual] |
Close a directory or file.
retsz | If not nil, where the size of the file is to be returned. |
Implemented in XrdCephOssDir, XrdCephOssFile, XrdOssDir, XrdOssFile, XrdPssDir, and XrdPssFile.
uint16_t XrdOssDF::DFType | ( | ) | [inline] |
References dfType.
virtual int XrdOssDF::Fchmod | ( | mode_t | mode | ) | [inline, virtual] |
Change file mode settings.
mode | - The new file mode setting. |
Reimplemented in XrdOssFile, and XrdPssFile.
virtual int XrdOssDF::Fctl | ( | int | cmd, | |
int | alen, | |||
const char * | args, | |||
char ** | resp = 0 | |||
) | [virtual] |
Execute a special operation on the directory or file.
cmd | - The operation to be performed. | |
alen | - Length of data pointed to by args. | |
args | - Data sent with request, zero if alen is zero. | |
resp | - Where the response is to be set. The caller must call delete on the returned object. |
virtual void XrdOssDF::Flush | ( | ) | [inline, virtual] |
Flush filesystem cached pages for this file (used for checksums).
Reimplemented in XrdOssFile.
virtual int XrdOssDF::Fstat | ( | struct stat * | buf | ) | [inline, virtual] |
Return state information for this file.
buf | - Pointer to the structure where info it to be returned. |
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual int XrdOssDF::Fsync | ( | XrdSfsAio * | aiop | ) | [inline, virtual] |
Synchronize associated file with media (asynchronous).
aiop | - Pointer to async I/O request object. |
Reimplemented in XrdOssFile, and XrdPssFile.
virtual int XrdOssDF::Fsync | ( | void | ) | [inline, virtual] |
Synchronize associated file with media (synchronous).
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual int XrdOssDF::Ftruncate | ( | unsigned long long | ) | [inline, virtual] |
Set the size of the associated file.
flen | - The new size of the file. |
Reimplemented in XrdOssFile, and XrdPssFile.
virtual int XrdOssDF::getFD | ( | ) | [inline, virtual] |
Return the underlying file descriptor.
Reimplemented in XrdOssFile.
virtual off_t XrdOssDF::getMmap | ( | void ** | addr | ) | [inline, virtual] |
Return the memory mapped characteristics of the file.
addr | - Pointer to where the memory mapped address is to be returned. |
Reimplemented in XrdOssFile.
virtual const char* XrdOssDF::getTID | ( | ) | [inline, virtual] |
Return trace identifier associated with this object.
References tident.
virtual int XrdOssDF::isCompressed | ( | char * | cxidp = 0 |
) | [inline, virtual] |
Return file compression charectistics.
cxidp | - Pointer to where the compression algorithm name returned. |
Reimplemented in XrdOssFile.
virtual int XrdOssDF::Open | ( | const char * | path, | |
int | Oflag, | |||
mode_t | Mode, | |||
XrdOucEnv & | env | |||
) | [inline, virtual] |
Open a file.
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. |
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual int XrdOssDF::Opendir | ( | const char * | path, | |
XrdOucEnv & | env | |||
) | [inline, virtual] |
Open a directory.
path | - Pointer to the path of the directory to be opened. | |
env | - Reference to environmental information. |
Reimplemented in XrdCephOssDir, XrdOssDir, and XrdPssDir.
virtual int XrdOssDF::pgRead | ( | XrdSfsAio * | aioparm, | |
uint64_t | opts | |||
) | [virtual] |
Read file pages and checksums using asynchronous I/O.
aioparm | - Pointer to async I/O object controlling the I/O. | |
opts | - Processing options (see above). |
virtual ssize_t XrdOssDF::pgRead | ( | void * | buffer, | |
off_t | offset, | |||
size_t | rdlen, | |||
uint32_t * | csvec, | |||
uint64_t | opts | |||
) | [virtual] |
virtual int XrdOssDF::pgWrite | ( | XrdSfsAio * | aoiparm, | |
uint64_t | opts | |||
) | [virtual] |
Write file pages and checksums using asynchronous I/O.
aioparm | - Pointer to async I/O object controlling the I/O. | |
opts | - Processing options (see above). |
virtual ssize_t XrdOssDF::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.
buffer | - pointer to buffer containing the bytes to write. | |
offset | - The offset where the write is to start. It must be page aligned. | |
wrlen | - The number of bytes to write. If amount is not an integral number of XrdSys::PageSize bytes, then this must be the last write to the file at or above the offset. | |
csvec | - A vector which contains the corresponding CRC32 checksum for each page. It must be size to wrlen/XrdSysPageSize + (wrlenXrdSysPageSize != 0) | |
opts | - Processing options (see above). |
virtual int XrdOssDF::Read | ( | XrdSfsAio * | aoip | ) | [inline, virtual] |
Read file bytes using asynchronous I/O.
aiop | - Pointer to async I/O object controlling the I/O. |
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual ssize_t XrdOssDF::Read | ( | void * | buffer, | |
off_t | offset, | |||
size_t | size | |||
) | [inline, virtual] |
Read file bytes into a buffer.
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. |
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual ssize_t XrdOssDF::Read | ( | off_t | offset, | |
size_t | size | |||
) | [inline, virtual] |
Preread file blocks into the file system cache.
offset | - The offset where the read is to start. | |
size | - The number of bytes to pre-read. |
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual int XrdOssDF::Readdir | ( | char * | buff, | |
int | blen | |||
) | [inline, virtual] |
Get the next directory entry.
buff | - Pointer to buffer where a null terminated string of the entry name is to be returned. If no more entries exist, a null string is returned. | |
blen | - Length of the buffer. |
Reimplemented in XrdCephOssDir, XrdOssDir, and XrdPssDir.
virtual ssize_t XrdOssDF::ReadRaw | ( | void * | buffer, | |
off_t | offset, | |||
size_t | size | |||
) | [inline, virtual] |
Read uncompressed file bytes into a buffer.
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. |
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual ssize_t XrdOssDF::ReadV | ( | XrdOucIOVec * | readV, | |
int | rdvcnt | |||
) | [virtual] |
Read file bytes as directed by the read vector.
readV | pointer to the array of read requests. | |
rdvcnt | the number of elements in readV. |
Reimplemented in XrdOssFile, and XrdPssFile.
virtual int XrdOssDF::StatRet | ( | struct stat * | ) | [inline, virtual] |
Set the stat() buffer where stat information is to be placed corresponding to the directory entry returned by Readdir().
buff | - Pointer to stat structure to be used. |
Reimplemented in XrdOssDir.
virtual int XrdOssDF::Write | ( | XrdSfsAio * | aiop | ) | [inline, virtual] |
Write file bytes using asynchronous I/O.
aiop | - Pointer to async I/O object controlling the I/O. |
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual ssize_t XrdOssDF::Write | ( | const void * | buffer, | |
off_t | offset, | |||
size_t | size | |||
) | [inline, virtual] |
Write file bytes from a buffer.
buffer | - pointer to buffer where the bytes reside. | |
offset | - The offset where the write is to start. | |
size | - The number of bytes to write. |
Reimplemented in XrdCephOssFile, XrdOssFile, and XrdPssFile.
virtual ssize_t XrdOssDF::WriteV | ( | XrdOucIOVec * | writeV, | |
int | wrvcnt | |||
) | [virtual] |
Write file bytes as directed by the write vector.
writeV | pointer to the array of write requests. | |
wrvcnt | the number of elements in writeV. |
const uint16_t XrdOssDF::DF_isDir = 0x0001 [static] |
Object is for a directory.
Return the underlying object type.
const uint16_t XrdOssDF::DF_isFile = 0x0002 [static] |
Object is for a file.
const uint16_t XrdOssDF::DF_isProxy = 0x0010 [static] |
Object is a proxy object.
uint16_t XrdOssDF::dfType [protected] |
Referenced by DFType().
const uint64_t XrdOssDF::doCalc = 0x4000000000000000ULL [static] |
pgw: Calculate checksums
int XrdOssDF::fd [protected] |
Referenced by XrdOssFile::getFD(), XrdOssDir::XrdOssDir(), XrdOssFile::~XrdOssFile(), and XrdPssFile::~XrdPssFile().
off_t XrdOssDF::pgwEOF [protected] |
short XrdOssDF::rsvd [protected] |
const char* XrdOssDF::tident [protected] |
Referenced by getTID().
const uint64_t XrdOssDF::Verify = 0x8000000000000000ULL [static] |
all: Verify checksums
Read file pages into a buffer and return corresponding checksums.
buffer | - pointer to buffer where the bytes are to be placed. | |
offset | - The offset where the read is to start. It must be page aligned. | |
rdlen | - The number of bytes to read. The amount must be an integral number of XrdSfsPage::Size bytes. | |
csvec | - A vector of entries to be filled with the cooresponding CRC32C checksum for each page. It must be size to rdlen/XrdSysPageSize + (rdlenXrdSysPageSize != 0) | |
opts | - Processing options (see below). |