![]() |
XRootD
|
POSIX interface to XRootD with some extensions, as noted. More...
#include <XrdPosixXrootd.hh>
Public Member Functions | |
XrdPosixXrootd (int maxfd=255, int maxdir=0, int maxthr=0) | |
~XrdPosixXrootd () | |
int | fdOrigin () |
Static Public Member Functions | |
static int | Access (const char *path, int amode) |
Access() conforms to POSIX.1-2001 access() | |
static int | Close (int fildes) |
Close() conforms to POSIX.1-2001 close() | |
static int | Closedir (DIR *dirp) |
Closedir() conforms to POSIX.1-2001 closedir() | |
static int | endPoint (int FD, char *Buff, int Blen) |
static int | Fstat (int fildes, struct stat *buf) |
Fstat() conforms to POSIX.1-2001 fstat() | |
static int | Fsync (int fildes) |
Fsync() conforms to POSIX.1-2001 fsync() | |
static void | Fsync (int fildes, XrdPosixCallBackIO *cbp) |
static int | Ftruncate (int fildes, off_t offset) |
Ftruncate() conforms to POSIX.1-2001 ftruncate() | |
static long long | Getxattr (const char *path, const char *name, void *value, unsigned long long size) |
static bool | isXrootdDir (DIR *dirp) |
static off_t | Lseek (int fildes, off_t offset, int whence) |
Lseek() conforms to POSIX.1-2001 lseek() | |
static int | Mkdir (const char *path, mode_t mode) |
Mkdir() conforms to POSIX.1-2001 mkdir() | |
static bool | myFD (int fd) |
static int | Open (const char *path, int oflag, mode_t mode=0, XrdPosixCallBack *cbP=0) |
static DIR * | Opendir (const char *path) |
Opendir() conforms to POSIX.1-2001 opendir() | |
static ssize_t | Pread (int fildes, void *buf, size_t nbyte, off_t offset) |
Pread() conforms to POSIX.1-2001 pread() | |
static void | Pread (int fildes, void *buf, size_t nbyte, off_t offset, XrdPosixCallBackIO *cbp) |
static ssize_t | Pwrite (int fildes, const void *buf, size_t nbyte, off_t offset) |
Pwrite() conforms to POSIX.1-2001 pwrite() | |
static void | Pwrite (int fildes, const void *buf, size_t nbyte, off_t offset, XrdPosixCallBackIO *cbp) |
static int | QueryChksum (const char *path, time_t &mtime, char *buff, int blen) |
static int | QueryError (std::string &emsg, DIR *dirP, bool reset=true) |
static int | QueryError (std::string &emsg, int fd=-1, bool reset=true) |
static long long | QueryOpaque (const char *path, char *buff, int blen) |
static ssize_t | Read (int fildes, void *buf, size_t nbyte) |
Read() conforms to POSIX.1-2001 read() | |
static struct dirent * | Readdir (DIR *dirp) |
static struct dirent64 * | Readdir64 (DIR *dirp) |
static int | Readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result) |
static int | Readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result) |
static ssize_t | Readv (int fildes, const struct iovec *iov, int iovcnt) |
Readv() conforms to POSIX.1-2001 readv() | |
static int | Rename (const char *oldpath, const char *newpath) |
Rename() conforms to POSIX.1-2001 rename() | |
static void | Rewinddir (DIR *dirp) |
Rewinddir() conforms to POSIX.1-2001 rewinddir() | |
static int | Rmdir (const char *path) |
Rmdir() conforms to POSIX.1-2001 rmdir() | |
static void | Seekdir (DIR *dirp, long loc) |
Seekdir() conforms to POSIX.1-2001 seekdir() | |
static int | Stat (const char *path, struct stat *buf) |
Stat() conforms to POSIX.1-2001 stat() | |
static int | Statfs (const char *path, struct statfs *buf) |
static int | StatRet (DIR *dirp, struct stat *buf) |
static int | Statvfs (const char *path, struct statvfs *buf) |
Statvfs() conforms to POSIX.1-2001 statvfs() | |
static long | Telldir (DIR *dirp) |
Telldir() conforms to POSIX.1-2001 telldir() | |
static int | Truncate (const char *path, off_t offset) |
Telldir() conforms to POSIX.1-2001 telldir() | |
static int | Unlink (const char *path) |
Unlink() conforms to POSIX.1-2001 unlink() | |
static ssize_t | VRead (int fildes, const XrdOucIOVec *readV, int n) |
static void | VRead (int fildes, const XrdOucIOVec *readV, int n, XrdPosixCallBackIO *cbp) |
static ssize_t | Write (int fildes, const void *buf, size_t nbyte) |
Write() conforms to POSIX.1-2001 write() | |
static ssize_t | Writev (int fildes, const struct iovec *iov, int iovcnt) |
Writev() conforms to POSIX.1-2001 writev() | |
Static Public Attributes | |
static const int | isStream = 0x40000000 |
Friends | |
class | XrdPosixConfig |
class | XrdPosixExtra |
POSIX interface to XRootD with some extensions, as noted.
Definition at line 63 of file XrdPosixXrootd.hh.
XrdPosixXrootd::XrdPosixXrootd | ( | int | maxfd = 255, |
int | maxdir = 0, | ||
int | maxthr = 0 ) |
Definition at line 180 of file XrdPosixXrootd.cc.
References XrdOucPsx::ClientConfig(), XrdPosixObject::Init(), XrdSysMutex::Lock(), XrdOucEnv::Put(), XrdPosixConfig::SetConfig(), XrdPosixGlobals::theLogger, XrdSysMutex::UnLock(), and XrdPosixGlobals::usingEC.
XrdPosixXrootd::~XrdPosixXrootd | ( | ) |
Definition at line 229 of file XrdPosixXrootd.cc.
References XrdPosixObject::Shutdown().
|
static |
Access() conforms to POSIX.1-2001 access()
Definition at line 242 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, and XrdPosixAdmin::Stat().
|
static |
Close() conforms to POSIX.1-2001 close()
Definition at line 268 of file XrdPosixXrootd.cc.
References XrdPosixFile::Close(), DEBUG, DEBUGON, XrdPosixFile::DelayedDestroy(), XrdOucCacheIO::Detach(), XrdPosixGlobals::ecMsg, EPNAME, obfuscateAuth(), XrdPosixFile::Origin(), XrdPosixObject::Ref(), XrdPosixObject::Refs(), XrdPosixObject::ReleaseFile(), XrdPosixMap::Result(), XrdCl::Status::ToString(), and XrdPosixFile::XCio.
Referenced by XrdPssFile::Close(), main(), and XrdFfsPosix_close().
|
static |
Closedir() conforms to POSIX.1-2001 closedir()
Definition at line 311 of file XrdPosixXrootd.cc.
References XrdPosixDir::dirNo(), XrdPosixGlobals::ecMsg, and XrdPosixObject::ReleaseDir().
Referenced by XrdPssDir::Close(), and XrdFfsPosix_closedir().
|
static |
endPoint() is a POSIX extension and returns the location of an open file.
FD | File descriptor of an open file in question. |
Buff | Pointer to the buffer to receive '<host>:<port>' of the server. |
Blen | Size of the buffer, it must be big enough for the result. |
Definition at line 331 of file XrdPosixXrootd.cc.
References XrdPosixFile::clFile, XrdPosixObject::File(), XrdCl::URL::GetPort(), XrdCl::File::GetProperty(), XrdCl::File::IsOpen(), and XrdPosixObject::UnLock().
|
inline |
The following methods are considered private but defined as public to allow XrdPosix 'C' functions and XrdPss classes access private members.
Definition at line 371 of file XrdPosixXrootd.hh.
Referenced by xrootdfs_init().
|
static |
Fstat() conforms to POSIX.1-2001 fstat()
Definition at line 369 of file XrdPosixXrootd.cc.
References XrdPosixObject::File(), XrdOucCacheIO::Fstat(), XrdPosixFile::Fstat(), XrdPosixConfig::initStat(), stat, XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
Referenced by XrdPssFile::Fstat(), and xrootdfs_read().
|
static |
Fsync() conforms to POSIX.1-2001 fsync()
Definition at line 405 of file XrdPosixXrootd.cc.
References XrdPosixObject::File(), XrdOucCacheIO::Sync(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
Referenced by XrdPssFile::Fsync(), XrdPssFile::Fsync(), and XrdFfsPosix_fsync().
|
static |
Definition at line 423 of file XrdPosixXrootd.cc.
References XrdPosixCallBackIO::Complete(), XrdPosixObject::File(), XrdPosixObject::Ref(), XrdOucCacheIO::Sync(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
|
static |
Ftruncate() conforms to POSIX.1-2001 ftruncate()
Definition at line 440 of file XrdPosixXrootd.cc.
References XrdPosixObject::File(), XrdOucCacheIO::Trunc(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
Referenced by XrdPssFile::Ftruncate(), and XrdFfsPosix_ftruncate().
|
static |
Getxattr() is a POSIX extension and conforms to Linux 2.4 getxattr(). This method returns attributes associated with a file. The format does not correspond to information returned by Linux. Refer to the XRootD protocol reference for the detailed description of the information returned.
path | pointer to the path whose attributes are to be returned |
name | name of the attribute to be returned. Valid attributes are xrootd.cksum - file's checksum xrootd.space - space associated with the path xrootd.xattr - server specific extended attributes for path |
value | pointer to the buffer to receive the attribute values. |
size | size of the buffer (value). If size is zero, only the maximum length of the attribute value is returned. |
Definition at line 464 of file XrdPosixXrootd.cc.
References XrdCl::QueryCode::Checksum, XrdPosixGlobals::ecMsg, ENOATTR, XrdPosixAdmin::Query(), XrdCl::QueryCode::Space, XrdPosixAdmin::Stat(), and XrdCl::QueryCode::XAttr.
Referenced by getchksum(), and XrdFfsPosix_getxattr().
|
static |
Definition at line 1462 of file XrdPosixXrootd.cc.
References XrdPosixObject::Dir(), XrdPosixDir::dirNo(), myFD(), and XrdPosixObject::UnLock().
|
static |
Lseek() conforms to POSIX.1-2001 lseek()
Definition at line 497 of file XrdPosixXrootd.cc.
References XrdPosixFile::addOffset(), XrdPosixObject::File(), XrdOucCacheIO::FSize(), XrdPosixFile::setOffset(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
Referenced by XrdFfsPosix_lseek().
|
static |
Mkdir() conforms to POSIX.1-2001 mkdir()
Definition at line 528 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdCl::URL::GetPathWithParams(), XrdPosixAdmin::isOK(), XrdCl::MkDirFlags::MakePath, XrdCl::FileSystem::MkDir(), XrdPosixMap::Mode2Access(), XrdCl::MkDirFlags::None, XrdPosixMap::Result(), XrdPosixAdmin::Url, and XrdPosixAdmin::Xrd.
Referenced by XrdPssSys::Mkdir(), and XrdFfsPosix_mkdir().
|
static |
Definition at line 1480 of file XrdPosixXrootd.cc.
References XrdPosixObject::Valid().
Referenced by fcntl(), fstat(), and isXrootdDir().
|
static |
Definition at line 555 of file XrdPosixXrootd.cc.
References Open().
Referenced by main(), Open(), XrdPssFile::Open(), XrdPosixConfig::OpenFC(), and XrdFfsPosix_open().
|
static |
Opendir() conforms to POSIX.1-2001 opendir()
Definition at line 705 of file XrdPosixXrootd.cc.
References XrdPosixObject::AssignFD(), XrdPosixGlobals::ecMsg, and XrdPosixDir::Open().
Referenced by XrdPssDir::Opendir(), and XrdFfsPosix_opendir().
|
static |
Pread() conforms to POSIX.1-2001 pread()
Definition at line 742 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdPosixObject::File(), XrdOucCacheIO::Read(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
Referenced by XrdPssFile::Read(), XrdPssFile::Read(), and XrdFfsPosix_pread().
|
static |
Definition at line 773 of file XrdPosixXrootd.cc.
References XrdPosixCallBackIO::Complete(), XrdPosixObject::ecMsg, XrdPosixObject::File(), XrdOucCacheIO::Read(), XrdPosixObject::Ref(), XrdOucECMsg::SetErrno(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
|
static |
Pwrite() conforms to POSIX.1-2001 pwrite()
Definition at line 809 of file XrdPosixXrootd.cc.
References XrdPosixObject::File(), XrdPosixObject::UnLock(), XrdPosixFile::UpdtSize(), XrdOucCacheIO::Write(), and XrdPosixFile::XCio.
Referenced by XrdPssFile::Write(), XrdPssFile::Write(), and XrdFfsPosix_pwrite().
|
static |
Definition at line 840 of file XrdPosixXrootd.cc.
References XrdPosixCallBackIO::Complete(), XrdPosixObject::ecMsg, XrdPosixObject::File(), XrdPosixObject::Ref(), XrdOucECMsg::SetErrno(), XrdPosixObject::UnLock(), XrdOucCacheIO::Write(), and XrdPosixFile::XCio.
|
static |
QueryChksum() is a POSIX extension and returns a file's modification time and its associated checksum value.
path | path associated with the file whose checksum is wanted. |
mtime | where the file's modification time (st_mtime) is placed. |
buff | pointer to the buffer to hold the checksum value. |
blen | the length of the buffer. |
Definition at line 1489 of file XrdPosixXrootd.cc.
References XrdCl::QueryCode::Checksum, XrdPosixGlobals::ecMsg, XrdPosixAdmin::Query(), and XrdPosixAdmin::Stat().
Referenced by XrdPssCks::Get().
|
static |
Definition at line 1526 of file XrdPosixXrootd.cc.
References XrdPosixObject::Dir(), XrdPosixDir::dirNo(), XrdPosixGlobals::ecMsg, emsg(), XrdOucECMsg::Get(), and XrdPosixObject::getECMsg().
|
static |
QueryError() is a POSIX extension and returns extended information about the last error returned from a call to a POSIX function.
emsg | Reference to a string to hold the retruned message text. |
fd | The file descriptor associated with the error. A negative value returns the last error encountered on the calling thread for the last function not releated to a file descritor. dirP Get the error associated with the last directory operation. |
reset | When true (the default) clears the error information. |
Definition at line 1507 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, emsg(), XrdPosixObject::File(), XrdOucECMsg::Get(), and XrdPosixObject::getECMsg().
Referenced by XrdPssSys::Info().
|
static |
QueryOpaque() is a POSIX extension and returns a file's implementation specific information.
path | path associated with the file whose information is wanted. |
buff | pointer to the buffer to hold the information. |
blen | the length of the buffer. |
Definition at line 1545 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdCl::QueryCode::OpaqueFile, XrdPosixAdmin::Query(), and XrdPosixAdmin::Stat().
|
static |
Read() conforms to POSIX.1-2001 read()
Definition at line 876 of file XrdPosixXrootd.cc.
References XrdPosixFile::addOffset(), XrdPosixObject::File(), XrdPosixFile::Offset(), XrdOucCacheIO::Read(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
Referenced by main(), Readv(), and XrdFfsPosix_read().
|
static |
readdir() conforms to POSIX.1-2001 readdir() and is normally equivalent to readdir64(). The latter is provided for those platforms that require a specific 64-bit interface to directory information, which is now rare.
Definition at line 969 of file XrdPosixXrootd.cc.
References Readdir64().
Referenced by XrdFfsPosix_readdir().
|
static |
Definition at line 991 of file XrdPosixXrootd.cc.
References XrdPosixObject::Dir(), XrdPosixDir::dirNo(), XrdPosixGlobals::ecMsg, XrdPosixDir::nextEntry(), XrdPosixDir::Status(), and XrdPosixObject::UnLock().
Referenced by Readdir().
|
static |
Definition at line 1042 of file XrdPosixXrootd.cc.
References XrdPosixObject::Dir(), XrdPosixDir::dirNo(), XrdPosixDir::nextEntry(), XrdPosixDir::Status(), and XrdPosixObject::UnLock().
Referenced by Readdir_r().
|
static |
readdir_r() conforms to POSIX.1-2001 readdir_r() and is normally equivalent to readdir64_r(). The latter is provided for those platforms that require a specific 64-bit interface to directory information, which is now rare.
Definition at line 1020 of file XrdPosixXrootd.cc.
References Readdir64_r().
Referenced by XrdPssDir::Readdir().
|
static |
Readv() conforms to POSIX.1-2001 readv()
Definition at line 907 of file XrdPosixXrootd.cc.
References Read().
|
static |
Rename() conforms to POSIX.1-2001 rename()
Definition at line 1067 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdCl::URL::GetPathWithParams(), XrdPosixAdmin::isOK(), XrdCl::URL::IsValid(), XrdCl::FileSystem::Mv(), XrdPosixMap::Result(), XrdPosixGlobals::theCache, XrdPosixAdmin::Url, XrdPosixGlobals::usingEC, and XrdPosixAdmin::Xrd.
Referenced by XrdPssSys::Rename(), and XrdFfsPosix_rename().
|
static |
Rewinddir() conforms to POSIX.1-2001 rewinddir()
Definition at line 1100 of file XrdPosixXrootd.cc.
References XrdPosixObject::Dir(), XrdPosixDir::dirNo(), XrdPosixDir::rewind(), and XrdPosixObject::UnLock().
|
static |
Rmdir() conforms to POSIX.1-2001 rmdir()
Definition at line 1117 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdCl::URL::GetPathWithParams(), XrdPosixAdmin::isOK(), XrdPosixMap::Result(), XrdCl::FileSystem::RmDir(), XrdPosixGlobals::theCache, XrdPosixAdmin::Url, and XrdPosixAdmin::Xrd.
Referenced by XrdPssSys::Remdir(), and XrdFfsPosix_rmdir().
|
static |
Seekdir() conforms to POSIX.1-2001 seekdir()
Definition at line 1143 of file XrdPosixXrootd.cc.
References XrdPosixObject::Dir(), XrdPosixDir::dirNo(), XrdPosixDir::getEntries(), XrdPosixDir::Open(), XrdPosixDir::setOffset(), XrdPosixObject::UnLock(), and XrdPosixDir::Unread().
|
static |
Stat() conforms to POSIX.1-2001 stat()
Definition at line 1166 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdPosixConfig::initStat(), XrdPosixAdmin::isOK(), XrdPosixAdmin::Stat(), stat, XrdPosixGlobals::theCache, and XrdPosixGlobals::usingEC.
Referenced by XrdPssFile::Fstat(), main(), XrdPssSys::Stat(), and XrdFfsPosix_stat().
|
static |
Statfs() generally conforms to the platform-specific definition of statfs(). There is no specific POSIX specification for this call.
Definition at line 1209 of file XrdPosixXrootd.cc.
References statfs, Statvfs(), and statvfs.
|
static |
Definition at line 1246 of file XrdPosixXrootd.cc.
References XrdPosixObject::Dir(), XrdPosixDir::dirNo(), and stat.
Referenced by XrdPssDir::StatRet().
|
static |
Statvfs() conforms to POSIX.1-2001 statvfs()
Definition at line 1265 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdCl::StatInfoVFS::GetFreeRW(), XrdCl::StatInfoVFS::GetFreeStaging(), XrdCl::StatInfoVFS::GetNodesRW(), XrdCl::StatInfoVFS::GetNodesStaging(), XrdCl::URL::GetPathWithParams(), XrdCl::StatInfoVFS::GetUtilizationRW(), XrdCl::StatInfoVFS::GetUtilizationStaging(), XrdPosixAdmin::isOK(), XrdPosixMap::Result(), XrdCl::FileSystem::StatVFS(), statvfs, XrdPosixAdmin::Url, and XrdPosixAdmin::Xrd.
Referenced by Statfs().
|
static |
Telldir() conforms to POSIX.1-2001 telldir()
Definition at line 1331 of file XrdPosixXrootd.cc.
References XrdPosixObject::Dir(), XrdPosixDir::dirNo(), XrdPosixGlobals::ecMsg, XrdPosixDir::getOffset(), and XrdPosixObject::UnLock().
|
static |
Telldir() conforms to POSIX.1-2001 telldir()
Definition at line 1353 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdCl::URL::GetPathWithParams(), XrdPosixAdmin::isOK(), XrdPosixMap::Result(), XrdPosixGlobals::theCache, XrdCl::FileSystem::Truncate(), XrdPosixAdmin::Url, and XrdPosixAdmin::Xrd.
Referenced by XrdPssSys::Truncate(), and XrdFfsPosix_truncate().
|
static |
Unlink() conforms to POSIX.1-2001 unlink()
Definition at line 1381 of file XrdPosixXrootd.cc.
References XrdPosixGlobals::ecMsg, XrdCl::URL::GetPathWithParams(), XrdPosixAdmin::isOK(), XrdPosixMap::Result(), XrdCl::FileSystem::Rm(), XrdPosixGlobals::theCache, XrdPosixAdmin::Url, XrdPosixGlobals::usingEC, and XrdPosixAdmin::Xrd.
Referenced by XrdPssSys::Unlink(), and XrdFfsPosix_unlink().
|
static |
Definition at line 930 of file XrdPosixXrootd.cc.
References XrdPosixObject::File(), XrdOucCacheIO::ReadV(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
|
static |
VRead() is a POSIX extension and allows one to read multiple chunks of a file in one operation.
fildes | file descriptor of a file opened for reading. |
readV | the read vector of offset/length/buffer triplets. Data at each offset of the specifiued length is placed in buffer. |
n | the number of elements in the readV vector. |
cbp | pointer to the callback object for async execution. |
Definition at line 951 of file XrdPosixXrootd.cc.
References XrdPosixCallBackIO::Complete(), XrdPosixObject::File(), XrdOucCacheIO::ReadV(), XrdPosixObject::Ref(), XrdPosixObject::UnLock(), and XrdPosixFile::XCio.
Referenced by XrdPssFile::ReadV().
|
static |
Write() conforms to POSIX.1-2001 write()
Definition at line 1410 of file XrdPosixXrootd.cc.
References XrdPosixFile::addOffset(), XrdPosixObject::File(), XrdPosixFile::Offset(), XrdPosixObject::UnLock(), XrdOucCacheIO::Write(), and XrdPosixFile::XCio.
Referenced by Writev(), and XrdFfsPosix_write().
|
static |
Writev() conforms to POSIX.1-2001 writev()
Definition at line 1440 of file XrdPosixXrootd.cc.
References Write().
|
friend |
Definition at line 66 of file XrdPosixXrootd.hh.
References XrdPosixConfig.
Referenced by XrdPosixConfig.
|
friend |
Definition at line 67 of file XrdPosixXrootd.hh.
References stat, and XrdPosixExtra.
Referenced by XrdPosixExtra.
|
static |
Open() conforms to POSIX.1-2001 open() when extensions are not used.
Extensions:
cbP | Pointer to a callback object. When specified, the open is performed in the background and the Comp[lete() is called when the Open() completes. See XrdPosixCallBack.hh for complete details. |
Definition at line 166 of file XrdPosixXrootd.hh.
Referenced by XrdPosix_Fopen().