|
xrootd
|
#include <XrdPosixXrootd.hh>

Public Member Functions | |
| XrdPosixXrootd (int maxfd=255, int maxdir=255, int maxthr=255) | |
| ~XrdPosixXrootd () | |
Static Public Member Functions | |
| static int | Close (int fildes, int Stream=0) |
| static int | Closedir (DIR *dirp) |
| static int | Fstat (int fildes, struct stat *buf) |
| static int | Fsync (int fildes) |
| static int | Ftruncate (int fildes, off_t offset) |
| static long long | Getxattr (const char *path, const char *name, void *value, unsigned long long size) |
| static off_t | Lseek (int fildes, off_t offset, int whence) |
| static int | Mkdir (const char *path, mode_t mode) |
| static int | Open (const char *path, int oflag, mode_t mode=0, XrdPosixCallBack *cbP=0) |
| static DIR * | Opendir (const char *path) |
| static ssize_t | Pread (int fildes, void *buf, size_t nbyte, off_t offset) |
| static ssize_t | Read (int fildes, void *buf, size_t nbyte) |
| static ssize_t | Readv (int fildes, const struct iovec *iov, int iovcnt) |
| static struct dirent * | Readdir (DIR *dirp) |
| static struct dirent64 * | Readdir64 (DIR *dirp) |
| static int | Readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result) |
| static int | Readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result) |
| static int | Rename (const char *oldpath, const char *newpath) |
| static void | Rewinddir (DIR *dirp) |
| static int | Rmdir (const char *path) |
| static void | Seekdir (DIR *dirp, long loc) |
| static int | Stat (const char *path, struct stat *buf) |
| static int | Statfs (const char *path, struct statfs *buf) |
| static int | Statvfs (const char *path, struct statvfs *buf) |
| static ssize_t | Pwrite (int fildes, const void *buf, size_t nbyte, off_t offset) |
| static long | Telldir (DIR *dirp) |
| static int | Truncate (const char *path, off_t offset) |
| static int | Unlink (const char *path) |
| static ssize_t | Write (int fildes, const void *buf, size_t nbyte) |
| static ssize_t | Write (int fildes, void *buf, size_t nbyte, off_t offset) |
| static ssize_t | Writev (int fildes, const struct iovec *iov, int iovcnt) |
| static int | Access (const char *path, int amode) |
| static int | endPoint (int FD, char *Buff, int Blen) |
| static bool | isXrootdDir (DIR *dirp) |
| static int | mapError (int rc) |
| static bool | myFD (int fd) |
| static void | OpenCB (XrdPosixFile *fp, void *cbArg, int res) |
| static long long | QueryOpaque (const char *, char *, int) |
| static void | setDebug (int val) |
| static void | setEnv (const char *var, const char *val) |
| static void | setEnv (const char *var, long val) |
Static Public Attributes | |
| static const int | isStream = 0x40000000 |
| static int | Debug = -2 |
Static Private Member Functions | |
| static void | initEnv () |
| static int | Fault (XrdPosixFile *fp, int complete=1) |
| static XrdPosixFile * | findFP (int fildes, int glk=0) |
| static XrdPosixDir * | findDIR (DIR *dirp, int glk=0) |
| static void | initStat (struct stat *buf) |
| static void | initXdev (dev_t &st_dev, dev_t &st_rdev) |
| static int | mapFlags (int flags) |
| static int | mapMode (mode_t Mode) |
Static Private Attributes | |
| static XrdSysMutex | myMutex |
| static XrdPosixFile ** | myFiles = 0 |
| static XrdPosixDir ** | myDirs = 0 |
| static int | lastFD = -1 |
| static int | highFD = -1 |
| static int | baseFD = 0 |
| static int | freeFD = 0 |
| static int | lastDir = -1 |
| static int | highDir = -1 |
| static int | devNull = -1 |
| static int | pllOpen = 0 |
| static int | maxThreads = 0 |
| static int | initDone = 0 |
| XrdPosixXrootd::XrdPosixXrootd | ( | int | maxfd = 255, |
| int | maxdir = 255, |
||
| int | maxthr = 255 |
||
| ) |
References baseFD, devNull, XrdPosixLinkage::Init(), initDone, initEnv(), lastDir, lastFD, XrdSysMutex::Lock(), maxThreads, myDirs, myFiles, myMutex, open(), XrdSysMutex::UnLock(), and Xunix.
| XrdPosixXrootd::~XrdPosixXrootd | ( | ) |
References highDir, highFD, initDone, XrdSysMutex::Lock(), myDirs, myFiles, myMutex, and XrdSysMutex::UnLock().
| int XrdPosixXrootd::Access | ( | const char * | path, |
| int | amode | ||
| ) | [static] |
References XrdPosixAdminNew::Admin, XrdOucString::c_str(), XrdClientUrlInfo::File, XrdPosixAdminNew::isOK(), XrdPosixAdminNew::lastError(), mapFlags(), R_OK, XrdPosixAdminNew::Result(), S_IRUSR, S_IWUSR, S_IXUSR, XrdClientAdmin::Stat(), W_OK, and X_OK.
Referenced by XrdPosix_Access().
| int XrdPosixXrootd::Close | ( | int | fildes, |
| int | Stream = 0 |
||
| ) | [static] |
References baseFD, XrdPosixFile::FD, findFP(), freeFD, myFD(), myFiles, myMutex, XrdSysMutex::UnLock(), and XrdPosixFile::UnLock().
Referenced by XrdPssFile::Close(), main(), XrdFfsPosix_close(), XrdPosix_Close(), XrdPosix_Fclose(), and XrdPosix_Fopen().
| int XrdPosixXrootd::Closedir | ( | DIR * | dirp | ) | [static] |
References XrdPosixDir::dirNo(), findDIR(), myDirs, myMutex, XrdSysMutex::UnLock(), and XrdPosixDir::UnLock().
Referenced by XrdFfsPosix_closedir(), and XrdPosix_Closedir().
| int XrdPosixXrootd::endPoint | ( | int | FD, |
| char * | Buff, | ||
| int | Blen | ||
| ) | [static] |
| int XrdPosixXrootd::Fault | ( | XrdPosixFile * | fp, |
| int | complete = 1 |
||
| ) | [static, private] |
References Debug, ServerResponseBody_Error::errmsg, ServerResponseBody_Error::errnum, kXR_noErrorYet, XrdClientAbs::LastServerError(), mapError(), XrdPosixFile::UnLock(), and XrdPosixFile::XClient.
Referenced by Fsync(), Ftruncate(), Open(), OpenCB(), Pread(), Pwrite(), Read(), and Write().
| XrdPosixDir * XrdPosixXrootd::findDIR | ( | DIR * | dirp, |
| int | glk = 0 |
||
| ) | [static, private] |
References XrdPosixDir::dirNo(), XrdPosixDir::Lock(), XrdSysMutex::Lock(), myDirs, myMutex, and XrdSysMutex::UnLock().
Referenced by Closedir(), Readdir64(), Readdir64_r(), Rewinddir(), Seekdir(), and Telldir().
| XrdPosixFile * XrdPosixXrootd::findFP | ( | int | fildes, |
| int | glk = 0 |
||
| ) | [static, private] |
References XrdPosixFile::Active(), baseFD, lastFD, XrdPosixFile::Lock(), XrdSysMutex::Lock(), myFiles, myMutex, and XrdSysMutex::UnLock().
Referenced by Close(), endPoint(), Fstat(), Fsync(), Ftruncate(), Lseek(), Pread(), Pwrite(), Read(), and Write().
| int XrdPosixXrootd::Fstat | ( | int | fildes, |
| struct stat * | buf | ||
| ) | [static] |
References findFP(), XrdClientStatInfo::flags, XrdClientStatInfo::id, initStat(), mapFlags(), XrdClientStatInfo::modtime, XrdClientStatInfo::size, XrdPosixFile::stat, and XrdPosixFile::UnLock().
Referenced by XrdPssFile::Fstat(), and XrdPosix_Fstat().
| int XrdPosixXrootd::Fsync | ( | int | fildes | ) | [static] |
References Fault(), findFP(), XrdClient::Sync(), XrdPosixFile::UnLock(), and XrdPosixFile::XClient.
Referenced by XrdPssFile::Fsync(), XrdFfsPosix_fsync(), XrdPosix_Fdatasync(), XrdPosix_Fflush(), and XrdPosix_Fsync().
| int XrdPosixXrootd::Ftruncate | ( | int | fildes, |
| off_t | offset | ||
| ) | [static] |
References Fault(), findFP(), XrdClient::Truncate(), XrdPosixFile::UnLock(), and XrdPosixFile::XClient.
Referenced by XrdPssFile::Ftruncate(), XrdFfsPosix_ftruncate(), and XrdPosix_Ftruncate().
| long long XrdPosixXrootd::Getxattr | ( | const char * | path, |
| const char * | name, | ||
| void * | value, | ||
| unsigned long long | size | ||
| ) | [static] |
| void XrdPosixXrootd::initEnv | ( | ) | [static, private] |
References Debug, NAME_CONNECTTIMEOUT, NAME_DATASERVERCONN_TTL, NAME_DEBUG, NAME_DFLTTCPWINDOWSIZE, NAME_FIRSTCONNECTMAXCNT, NAME_LBSERVERCONN_TTL, NAME_MULTISTREAMCNT, NAME_READAHEADSIZE, NAME_READCACHEBLKREMPOLICY, NAME_READCACHESIZE, NAME_RECONNECTWAIT, NAME_REMUSEDCACHEBLKS, NAME_REQUESTTIMEOUT, NAME_TRANSACTIONTIMEOUT, pllOpen, and setEnv().
Referenced by XrdPosixXrootd().
| void XrdPosixXrootd::initStat | ( | struct stat * | buf | ) | [static, private] |
References initXdev(), and stat().
| void XrdPosixXrootd::initXdev | ( | dev_t & | st_dev, |
| dev_t & | st_rdev | ||
| ) | [static, private] |
References stat().
Referenced by initStat().
| bool XrdPosixXrootd::isXrootdDir | ( | DIR * | dirp | ) | [static] |
References highDir, and myDirs.
Referenced by XrdPosix_Closedir(), XrdPosix_Readdir(), XrdPosix_Readdir64(), XrdPosix_Readdir64_r(), XrdPosix_Readdir_r(), XrdPosix_Rewinddir(), XrdPosix_Seekdir(), and XrdPosix_Telldir().
| off_t XrdPosixXrootd::Lseek | ( | int | fildes, |
| off_t | offset, | ||
| int | whence | ||
| ) | [static] |
References XrdPosixFile::addOffset(), findFP(), Scuttle, XrdPosixFile::setOffset(), XrdClientStatInfo::size, XrdPosixFile::stat, and XrdPosixFile::UnLock().
Referenced by XrdFfsPosix_lseek(), XrdPosix_Fseek(), XrdPosix_Fseeko(), XrdPosix_Ftell(), XrdPosix_Ftello(), and XrdPosix_Lseek().
| int XrdPosixXrootd::mapError | ( | int | rc | ) | [static] |
References EHOSTUNREACH, kXR_ArgTooLong, kXR_FSError, kXR_IOError, kXR_isDirectory, kXR_NoMemory, kXR_noserver, kXR_NoSpace, kXR_NotAuthorized, kXR_NotFile, and kXR_NotFound.
Referenced by Fault(), XrdPosixAdminNew::Fault(), XrdPosixAdminNew::lastError(), XrdPosixDir::nextEntry(), XrdPosixAdminNew::XrdPosixAdminNew(), and XrdPosixDir::XrdPosixDir().
| int XrdPosixXrootd::mapFlags | ( | int | flags | ) | [static, private] |
References kXR_isDir, kXR_offline, kXR_other, kXR_poscpend, kXR_readable, kXR_writable, kXR_xset, S_IRUSR, S_IWUSR, and S_IXUSR.
| int XrdPosixXrootd::mapMode | ( | mode_t | Mode | ) | [static, private] |
| int XrdPosixXrootd::Mkdir | ( | const char * | path, |
| mode_t | mode | ||
| ) | [static] |
References XrdPosixAdminNew::Admin, XrdOucString::c_str(), XrdPosixAdminNew::Fault(), XrdClientUrlInfo::File, XrdPosixAdminNew::isOK(), XrdClientAdmin::Mkdir(), XrdPosixAdminNew::Result(), S_IRGRP, S_IROTH, S_IRUSR, S_IWGRP, S_IWUSR, S_IXGRP, S_IXOTH, and S_IXUSR.
Referenced by XrdPssSys::Mkdir(), XrdFfsPosix_mkdir(), and XrdPosix_Mkdir().
| static bool XrdPosixXrootd::myFD | ( | int | fd | ) | [inline, static] |
References baseFD, highFD, and myFiles.
Referenced by Close(), fcntl(), fstat(), XrdPosix_Close(), XrdPosix_Fclose(), XrdPosix_Fcntl(), XrdPosix_Fdatasync(), XrdPosix_Fflush(), XrdPosix_Fread(), XrdPosix_Fseek(), XrdPosix_Fseeko(), XrdPosix_Fstat(), XrdPosix_Fsync(), XrdPosix_Ftell(), XrdPosix_Ftello(), XrdPosix_Ftruncate(), XrdPosix_Fwrite(), XrdPosix_Lseek(), XrdPosix_Pread(), XrdPosix_Pwrite(), XrdPosix_Read(), XrdPosix_Readv(), XrdPosix_Write(), and XrdPosix_Writev().
| int XrdPosixXrootd::Open | ( | const char * | path, |
| int | oflag, | ||
| mode_t | mode = 0, |
||
| XrdPosixCallBack * | cbP = 0 |
||
| ) | [static] |
References baseFD, close, devNull, EINPROGRESS, Fault(), freeFD, highFD, XrdPosixFile::isOpen(), isStream, XrdPosixFile::isSync, kXR_delete, kXR_mkpath, kXR_new, kXR_ok, kXR_open_read, kXR_open_updt, lastFD, XrdClientAbs::LastServerResp(), XrdSysMutex::Lock(), mapMode(), maxThreads, myFiles, myMutex, XrdClient::Open(), XrdMpx::Opts, pllOpen, XrdPosixFile::realFD, XrdPosixFile::stat, XrdClient::Stat(), ServerResponseHeader::status, XrdSysMutex::UnLock(), and XrdPosixFile::XClient.
Referenced by main(), XrdPssFile::Open(), XrdFfsPosix_open(), XrdPosix_Fopen(), and XrdPosix_Open().
| void XrdPosixXrootd::OpenCB | ( | XrdPosixFile * | fp, |
| void * | cbArg, | ||
| int | res | ||
| ) | [static] |
References baseFD, XrdPosixFile::cbResult, XrdPosixCallBack::Complete(), Fault(), XrdPosixFile::FD, XrdPosixFile::isOpen(), kXR_ok, XrdClientAbs::LastServerResp(), XrdSysMutex::Lock(), maxThreads, myFiles, myMutex, XrdPosixFile::Next, XrdSysSemaphore::Post(), XrdSysThread::Run(), XrdPosixFile::stat, XrdClient::Stat(), ServerResponseHeader::status, XrdPosixFile::theCB, XrdSysMutex::UnLock(), XrdSysSemaphore::Wait(), XrdPosixFile::XClient, and XrdPosixXrootdCB().
Referenced by XrdPosixFile::OpenComplete(), and XrdPosixXrootdCB().
| DIR * XrdPosixXrootd::Opendir | ( | const char * | path | ) | [static] |
References devNull, highDir, lastDir, XrdSysMutex::Lock(), myDirs, myMutex, XrdPosixDir::Status(), and XrdSysMutex::UnLock().
Referenced by XrdFfsPosix_opendir(), and XrdPosix_Opendir().
| ssize_t XrdPosixXrootd::Pread | ( | int | fildes, |
| void * | buf, | ||
| size_t | nbyte, | ||
| off_t | offset | ||
| ) | [static] |
References Fault(), findFP(), XrdClient::Read(), Scuttle, ssize_t, XrdPosixFile::UnLock(), and XrdPosixFile::XClient.
Referenced by XrdPssFile::Read(), XrdFfsPosix_pread(), and XrdPosix_Pread().
| ssize_t XrdPosixXrootd::Pwrite | ( | int | fildes, |
| const void * | buf, | ||
| size_t | nbyte, | ||
| off_t | offset | ||
| ) | [static] |
References Fault(), findFP(), Scuttle, XrdClientStatInfo::size, ssize_t, XrdPosixFile::stat, XrdPosixFile::UnLock(), XrdClient::Write(), and XrdPosixFile::XClient.
Referenced by XrdPssFile::Write(), XrdFfsPosix_pwrite(), and XrdPosix_Pwrite().
| long long XrdPosixXrootd::QueryOpaque | ( | const char * | path, |
| char * | value, | ||
| int | size | ||
| ) | [static] |
| ssize_t XrdPosixXrootd::Read | ( | int | fildes, |
| void * | buf, | ||
| size_t | nbyte | ||
| ) | [static] |
References XrdPosixFile::addOffset(), Fault(), findFP(), XrdPosixFile::Offset(), XrdClient::Read(), Scuttle, ssize_t, XrdPosixFile::UnLock(), and XrdPosixFile::XClient.
Referenced by main(), Readv(), XrdFfsPosix_read(), XrdPosix_Fread(), and XrdPosix_Read().
| struct dirent * XrdPosixXrootd::Readdir | ( | DIR * | dirp | ) | [static, read] |
References Readdir64().
Referenced by XrdFfsPosix_readdir(), and XrdPosix_Readdir().
| struct dirent64 * XrdPosixXrootd::Readdir64 | ( | DIR * | dirp | ) | [static, read] |
References findDIR(), XrdPosixDir::nextEntry(), XrdPosixDir::Status(), and XrdPosixDir::UnLock().
Referenced by Readdir(), and XrdPosix_Readdir64().
| int XrdPosixXrootd::Readdir64_r | ( | DIR * | dirp, |
| struct dirent64 * | entry, | ||
| struct dirent64 ** | result | ||
| ) | [static] |
References findDIR(), XrdPosixDir::nextEntry(), XrdPosixDir::Status(), and XrdPosixDir::UnLock().
Referenced by Readdir_r(), and XrdPosix_Readdir64_r().
| int XrdPosixXrootd::Readdir_r | ( | DIR * | dirp, |
| struct dirent * | entry, | ||
| struct dirent ** | result | ||
| ) | [static] |
References Readdir64_r().
Referenced by XrdPosix_Readdir_r().
| ssize_t XrdPosixXrootd::Readv | ( | int | fildes, |
| const struct iovec * | iov, | ||
| int | iovcnt | ||
| ) | [static] |
References Read(), and ssize_t.
Referenced by XrdPosix_Readv().
| int XrdPosixXrootd::Rename | ( | const char * | oldpath, |
| const char * | newpath | ||
| ) | [static] |
| void XrdPosixXrootd::Rewinddir | ( | DIR * | dirp | ) | [static] |
References findDIR(), XrdPosixDir::rewind(), and XrdPosixDir::UnLock().
Referenced by XrdPosix_Rewinddir().
| int XrdPosixXrootd::Rmdir | ( | const char * | path | ) | [static] |
| void XrdPosixXrootd::Seekdir | ( | DIR * | dirp, |
| long | loc | ||
| ) | [static] |
References findDIR(), XrdPosixDir::getEntries(), XrdPosixDir::getOffset(), XrdPosixDir::nextEntry(), XrdPosixDir::setOffset(), and XrdPosixDir::UnLock().
Referenced by XrdPosix_Seekdir().
| void XrdPosixXrootd::setDebug | ( | int | val | ) | [static] |
References Debug, and setEnv().
Referenced by XrdPssSys::Configure(), and XrdPssSys::xtrac().
| void XrdPosixXrootd::setEnv | ( | const char * | var, |
| const char * | val | ||
| ) | [static] |
References EnvPutString.
Referenced by XrdPssSys::Configure(), initEnv(), setDebug(), and XrdPssSys::xsopt().
| void XrdPosixXrootd::setEnv | ( | const char * | var, |
| long | val | ||
| ) | [static] |
References EnvPutInt.
| int XrdPosixXrootd::Stat | ( | const char * | path, |
| struct stat * | buf | ||
| ) | [static] |
References XrdPosixAdminNew::Admin, XrdOucString::c_str(), XrdPosixAdminNew::Fault(), XrdClientUrlInfo::File, initStat(), XrdPosixAdminNew::isOK(), mapFlags(), XrdPosixAdminNew::Result(), and XrdClientAdmin::Stat().
Referenced by main(), XrdPssSys::Stat(), XrdFfsPosix_stat(), XrdPosix_Lstat(), and XrdPosix_Stat().
| int XrdPosixXrootd::Statfs | ( | const char * | path, |
| struct statfs * | buf | ||
| ) | [static] |
References Statvfs(), and statvfs().
Referenced by XrdPosix_Statfs().
| int XrdPosixXrootd::Statvfs | ( | const char * | path, |
| struct statvfs * | buf | ||
| ) | [static] |
References XrdPosixAdminNew::Admin, XrdOucString::c_str(), XrdPosixAdminNew::Fault(), XrdClientUrlInfo::File, XrdPosixAdminNew::isOK(), XrdPosixAdminNew::Result(), and XrdClientAdmin::Stat_vfs().
Referenced by Statfs(), and XrdPosix_Statvfs().
| long XrdPosixXrootd::Telldir | ( | DIR * | dirp | ) | [static] |
References findDIR(), XrdPosixDir::getOffset(), and XrdPosixDir::UnLock().
Referenced by XrdPosix_Telldir().
| int XrdPosixXrootd::Truncate | ( | const char * | path, |
| off_t | offset | ||
| ) | [static] |
| int XrdPosixXrootd::Unlink | ( | const char * | path | ) | [static] |
| ssize_t XrdPosixXrootd::Write | ( | int | fildes, |
| const void * | buf, | ||
| size_t | nbyte | ||
| ) | [static] |
References XrdPosixFile::addOffset(), Fault(), findFP(), XrdPosixFile::Offset(), Scuttle, ssize_t, XrdPosixFile::UnLock(), XrdClient::Write(), and XrdPosixFile::XClient.
Referenced by Writev(), XrdFfsPosix_write(), XrdPosix_Fwrite(), and XrdPosix_Write().
| static ssize_t XrdPosixXrootd::Write | ( | int | fildes, |
| void * | buf, | ||
| size_t | nbyte, | ||
| off_t | offset | ||
| ) | [static] |
| ssize_t XrdPosixXrootd::Writev | ( | int | fildes, |
| const struct iovec * | iov, | ||
| int | iovcnt | ||
| ) | [static] |
References iovec::iov_len, ssize_t, and Write().
Referenced by XrdPosix_Writev().
int XrdPosixXrootd::baseFD = 0 [static, private] |
int XrdPosixXrootd::Debug = -2 [static] |
Referenced by Fault(), XrdPosixAdminNew::Fault(), initEnv(), and setDebug().
int XrdPosixXrootd::devNull = -1 [static, private] |
Referenced by Open(), Opendir(), and XrdPosixXrootd().
int XrdPosixXrootd::freeFD = 0 [static, private] |
int XrdPosixXrootd::highDir = -1 [static, private] |
Referenced by isXrootdDir(), Opendir(), and ~XrdPosixXrootd().
int XrdPosixXrootd::highFD = -1 [static, private] |
Referenced by myFD(), Open(), and ~XrdPosixXrootd().
int XrdPosixXrootd::initDone = 0 [static, private] |
Referenced by XrdPosixXrootd(), and ~XrdPosixXrootd().
const int XrdPosixXrootd::isStream = 0x40000000 [static] |
Referenced by Open(), and XrdPosix_Fopen().
int XrdPosixXrootd::lastDir = -1 [static, private] |
Referenced by Opendir(), and XrdPosixXrootd().
int XrdPosixXrootd::lastFD = -1 [static, private] |
Referenced by findFP(), Open(), and XrdPosixXrootd().
int XrdPosixXrootd::maxThreads = 0 [static, private] |
Referenced by Open(), OpenCB(), and XrdPosixXrootd().
XrdPosixDir ** XrdPosixXrootd::myDirs = 0 [static, private] |
Referenced by Closedir(), findDIR(), isXrootdDir(), Opendir(), XrdPosixXrootd(), and ~XrdPosixXrootd().
XrdPosixFile ** XrdPosixXrootd::myFiles = 0 [static, private] |
Referenced by Close(), findFP(), myFD(), Open(), OpenCB(), XrdPosixXrootd(), and ~XrdPosixXrootd().
XrdSysMutex XrdPosixXrootd::myMutex [static, private] |
Referenced by Close(), Closedir(), findDIR(), findFP(), Open(), OpenCB(), Opendir(), XrdPosixXrootd(), and ~XrdPosixXrootd().
int XrdPosixXrootd::pllOpen = 0 [static, private] |
1.7.3