xrootd
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes | List of all members
XrdPosixFile Class Reference

#include <XrdPosixFile.hh>

Inheritance diagram for XrdPosixFile:
Inheritance graph
[legend]
Collaboration diagram for XrdPosixFile:
Collaboration graph
[legend]

Public Member Functions

long long addOffset (long long offs, int updtSz=0)
 
bool Close (XrdCl::XRootDStatus &Status)
 
bool Finalize (XrdCl::XRootDStatus *Status)
 
long long FSize ()
 
int Fstat (struct stat &buf)
 
const char * Location ()
 
void HandleResponse (XrdCl::XRootDStatus *status, XrdCl::AnyObject *response)
 
void isOpen ()
 
void updLock ()
 
void updUnLock ()
 
long long Offset ()
 
const char * Origin ()
 
const char * Path ()
 
int Read (char *Buff, long long Offs, int Len)
 
void Read (XrdOucCacheIOCB &iocb, char *buff, long long offs, int rlen)
 
int ReadV (const XrdOucIOVec *readV, int n)
 
void ReadV (XrdOucCacheIOCB &iocb, const XrdOucIOVec *readV, int n)
 
long long setOffset (long long offs)
 
bool Stat (XrdCl::XRootDStatus &Status, bool force=false)
 
int Sync ()
 
void Sync (XrdOucCacheIOCB &iocb)
 
int Trunc (long long Offset)
 
void UpdtSize (size_t newsz)
 
bool Who (XrdPosixFile **fileP)
 
int Write (char *Buff, long long Offs, int Len)
 
void Write (XrdOucCacheIOCB &iocb, char *buff, long long offs, int wlen)
 
 XrdPosixFile (bool &aOK, const char *path, XrdPosixCallBack *cbP=0, int Opts=0)
 
 ~XrdPosixFile ()
 
virtual bool Who (XrdPosixDir **dirP)
 
virtual bool Who (XrdPosixFile **fileP)
 
- Public Member Functions inherited from XrdPosixObject
bool AssignFD (bool isStream=false)
 
int FDNum ()
 
void Lock (bool wr=true)
 
void Ref ()
 
int Refs ()
 
void unRef ()
 
void UnLock ()
 
virtual bool Who (XrdPosixDir **dirP)
 
 XrdPosixObject ()
 
virtual ~XrdPosixObject ()
 
- Public Member Functions inherited from XrdOucCacheIO2
virtual void Update (XrdOucCacheIO2 &iocp)
 
virtual ~XrdOucCacheIO2 ()
 
virtual int Read (char *Buffer, long long Offset, int Length)=0
 
virtual int ReadV (const XrdOucIOVec *readV, int n)
 
virtual int Sync ()=0
 
virtual int Write (char *Buffer, long long Offset, int Length)=0
 
- Public Member Functions inherited from XrdOucCacheIO
virtual XrdOucCacheIOBase ()
 
virtual XrdOucCacheIODetach ()
 
virtual bool ioActive ()
 
virtual void Preread (long long Offset, int Length, int Opts=0)
 
virtual void Preread (aprParms &Parms)
 
virtual ~XrdOucCacheIO ()
 
- Public Member Functions inherited from XrdCl::ResponseHandler
virtual ~ResponseHandler ()
 
virtual void HandleResponseWithHosts (XRootDStatus *status, AnyObject *response, HostList *hostList)
 

Static Public Member Functions

static void * DelayedDestroy (void *)
 
static void DelayedDestroy (XrdPosixFile *fp)
 
- Static Public Member Functions inherited from XrdPosixObject
static bool CanStream ()
 
static XrdPosixDirDir (int fildes, bool glk=false)
 
static XrdPosixFileFile (int fildes, bool glk=false)
 
static int Init (int numfd)
 
static void Release (XrdPosixObject *oP, bool needlk=true)
 
static XrdPosixDirReleaseDir (int fildes)
 
static XrdPosixFileReleaseFile (int fildes)
 
static void Shutdown ()
 
static bool Valid (int fd)
 

Public Attributes

XrdOucCacheIO2XCio
 
XrdPosixPrepIOPrepIO
 
XrdCl::File clFile
 
size_t mySize
 
time_t myMtime
 
dev_t myRdev
 
ino_t myInode
 
mode_t myMode
 
long long currOffset
 
XrdPosixCallBacktheCB
 
XrdPosixFilenextFile
 
int cOpt
 
int numTries
 
- Public Attributes inherited from XrdOucCacheIO
XrdOucCacheStats Statistics
 

Static Public Attributes

static XrdSysSemaphore ddSem
 
static XrdSysMutex ddMutex
 
static XrdPosixFileddList
 
static XrdPosixFileddLost
 
static char * sfSFX
 
static short sfSLN
 
static bool ddPosted
 
static int ddNum
 
static const int realFD = 1
 
static const int isStrm = 2
 
static const int isUpdt = 4
 
- Static Public Attributes inherited from XrdOucCacheIO
static const int SingleUse = 0x0001
 

Private Attributes

union {
   long long   currOffset
 
   XrdPosixCallBack *   theCB
 
   XrdPosixFile *   nextFile
 
}; 
 
char * fPath
 
char * fOpen
 
char * fLoc
 
union {
   int   cOpt
 
   int   numTries
 
}; 
 
char isStream
 

Additional Inherited Members

- Protected Attributes inherited from XrdPosixObject
XrdSysRecMutex updMutex
 
XrdSysRWLock objMutex
 
int fdNum
 
int refCnt
 

Constructor & Destructor Documentation

◆ XrdPosixFile()

XrdPosixFile::XrdPosixFile ( bool &  aOK,
const char *  path,
XrdPosixCallBack cbP = 0,
int  Opts = 0 
)

◆ ~XrdPosixFile()

XrdPosixFile::~XrdPosixFile ( )

Member Function Documentation

◆ addOffset()

long long XrdPosixFile::addOffset ( long long  offs,
int  updtSz = 0 
)
inline

◆ Close()

bool XrdPosixFile::Close ( XrdCl::XRootDStatus Status)

◆ DelayedDestroy() [1/2]

static void* XrdPosixFile::DelayedDestroy ( void *  )
static

◆ DelayedDestroy() [2/2]

static void XrdPosixFile::DelayedDestroy ( XrdPosixFile fp)
static

◆ Finalize()

bool XrdPosixFile::Finalize ( XrdCl::XRootDStatus Status)

◆ FSize()

long long XrdPosixFile::FSize ( )
inlinevirtual

◆ Fstat()

int XrdPosixFile::Fstat ( struct stat sbuff)
virtual

Perform an fstat() operation (defaults to passthrough).

Parameters
sbuffreference to the stat buffer to be filled in. Only fields st_size, st_blocks, st_mtime (st_atime and st_ctime may be set to st_mtime), st_ino, and st_mode need to be set. All other fields are preset and should not be changed.
Returns
<0 - fstat failed, value is -errno. =0 - fstat succeeded, sbuff holds stat information. >0 - fstat could not be done, forward operation to next level.

Reimplemented from XrdOucCacheIO2.

Referenced by XrdPosixPrepIO::Fstat().

◆ HandleResponse()

void XrdPosixFile::HandleResponse ( XrdCl::XRootDStatus status,
XrdCl::AnyObject response 
)
virtual

Called when a response to associated request arrives or an error occurs

Parameters
statusstatus of the request
responsean object associated with the response (request dependent)

Reimplemented from XrdCl::ResponseHandler.

◆ isOpen()

void XrdPosixFile::isOpen ( )

◆ Location()

const char* XrdPosixFile::Location ( )
virtual

Get the file's location (i.e. endpoint hostname and port)

Returns
A pointer to the file's location. It remains valid until the file is closed. A null string means the file is not open or is unknown.

Reimplemented from XrdOucCacheIO2.

◆ Offset()

long long XrdPosixFile::Offset ( )
inline

◆ Origin()

const char* XrdPosixFile::Origin ( )
inline

References fOpen.

◆ Path()

const char* XrdPosixFile::Path ( )
inlinevirtual

Implements XrdOucCacheIO.

References fPath.

Referenced by XrdPosixPrepIO::Path().

◆ Read() [1/2]

int XrdPosixFile::Read ( char *  Buff,
long long  Offs,
int  Len 
)
virtual

Implements XrdOucCacheIO.

Referenced by XrdPosixPrepIO::Read().

◆ Read() [2/2]

void XrdPosixFile::Read ( XrdOucCacheIOCB iocb,
char *  buff,
long long  offs,
int  rlen 
)
virtual

Reimplemented from XrdOucCacheIO2.

◆ ReadV() [1/2]

int XrdPosixFile::ReadV ( const XrdOucIOVec readV,
int  n 
)
virtual

Reimplemented from XrdOucCacheIO.

Referenced by XrdPosixPrepIO::ReadV().

◆ ReadV() [2/2]

void XrdPosixFile::ReadV ( XrdOucCacheIOCB iocb,
const XrdOucIOVec readV,
int  n 
)
virtual

Reimplemented from XrdOucCacheIO2.

◆ setOffset()

long long XrdPosixFile::setOffset ( long long  offs)
inline

◆ Stat()

bool XrdPosixFile::Stat ( XrdCl::XRootDStatus Status,
bool  force = false 
)

◆ Sync() [1/2]

int XrdPosixFile::Sync ( )
virtual

Implements XrdOucCacheIO.

Referenced by XrdPosixPrepIO::Sync().

◆ Sync() [2/2]

void XrdPosixFile::Sync ( XrdOucCacheIOCB iocb)
virtual

Reimplemented from XrdOucCacheIO2.

◆ Trunc()

int XrdPosixFile::Trunc ( long long  Offset)
virtual

Implements XrdOucCacheIO.

Referenced by XrdPosixPrepIO::Trunc().

◆ updLock()

void XrdPosixFile::updLock ( )
inline

◆ UpdtSize()

void XrdPosixFile::UpdtSize ( size_t  newsz)
inline

◆ updUnLock()

void XrdPosixFile::updUnLock ( )
inline

◆ Who() [1/3]

virtual bool XrdPosixObject::Who
inline

◆ Who() [2/3]

virtual bool XrdPosixObject::Who
inline

◆ Who() [3/3]

bool XrdPosixFile::Who ( XrdPosixFile **  fileP)
inlinevirtual

Reimplemented from XrdPosixObject.

◆ Write() [1/2]

int XrdPosixFile::Write ( char *  Buff,
long long  Offs,
int  Len 
)
virtual

Implements XrdOucCacheIO.

Referenced by XrdPosixPrepIO::Write().

◆ Write() [2/2]

void XrdPosixFile::Write ( XrdOucCacheIOCB iocb,
char *  buff,
long long  offs,
int  wlen 
)
virtual

Reimplemented from XrdOucCacheIO2.

Member Data Documentation

◆ @93

union { ... }

◆ @95

union { ... }

◆ clFile

XrdCl::File XrdPosixFile::clFile

◆ cOpt

int XrdPosixFile::cOpt

◆ currOffset

long long XrdPosixFile::currOffset

Referenced by addOffset(), Offset(), and setOffset().

◆ ddList

XrdPosixFile* XrdPosixFile::ddList
static

◆ ddLost

XrdPosixFile* XrdPosixFile::ddLost
static

◆ ddMutex

XrdSysMutex XrdPosixFile::ddMutex
static

◆ ddNum

int XrdPosixFile::ddNum
static

◆ ddPosted

bool XrdPosixFile::ddPosted
static

◆ ddSem

XrdSysSemaphore XrdPosixFile::ddSem
static

◆ fLoc

char* XrdPosixFile::fLoc
private

◆ fOpen

char* XrdPosixFile::fOpen
private

Referenced by Origin().

◆ fPath

char* XrdPosixFile::fPath
private

Referenced by Path().

◆ isStream

char XrdPosixFile::isStream
private

◆ isStrm

const int XrdPosixFile::isStrm = 2
static

◆ isUpdt

const int XrdPosixFile::isUpdt = 4
static

◆ myInode

ino_t XrdPosixFile::myInode

◆ myMode

mode_t XrdPosixFile::myMode

◆ myMtime

time_t XrdPosixFile::myMtime

◆ myRdev

dev_t XrdPosixFile::myRdev

◆ mySize

size_t XrdPosixFile::mySize

Referenced by addOffset(), FSize(), and UpdtSize().

◆ nextFile

XrdPosixFile* XrdPosixFile::nextFile

◆ numTries

int XrdPosixFile::numTries

◆ PrepIO

XrdPosixPrepIO* XrdPosixFile::PrepIO

◆ realFD

const int XrdPosixFile::realFD = 1
static

◆ sfSFX

char* XrdPosixFile::sfSFX
static

◆ sfSLN

short XrdPosixFile::sfSLN
static

◆ theCB

XrdPosixCallBack* XrdPosixFile::theCB

◆ XCio

XrdOucCacheIO2* XrdPosixFile::XCio

The documentation for this class was generated from the following file: