xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 ()
 
- 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 ()
 
- 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 ( bool &  aOK,
const char *  path,
XrdPosixCallBack cbP = 0,
int  Opts = 0 
)
XrdPosixFile::~XrdPosixFile ( )

Member Function Documentation

long long XrdPosixFile::addOffset ( long long  offs,
int  updtSz = 0 
)
inline
bool XrdPosixFile::Close ( XrdCl::XRootDStatus Status)
static void* XrdPosixFile::DelayedDestroy ( void *  )
static
static void XrdPosixFile::DelayedDestroy ( XrdPosixFile fp)
static
bool XrdPosixFile::Finalize ( XrdCl::XRootDStatus Status)
long long XrdPosixFile::FSize ( )
inlinevirtual
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().

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.

void XrdPosixFile::isOpen ( )
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.

long long XrdPosixFile::Offset ( )
inline
const char* XrdPosixFile::Origin ( )
inline

References fOpen.

const char* XrdPosixFile::Path ( )
inlinevirtual

Implements XrdOucCacheIO.

References fPath.

Referenced by XrdPosixPrepIO::Path().

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

Implements XrdOucCacheIO.

Referenced by XrdPosixPrepIO::Read().

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

Reimplemented from XrdOucCacheIO2.

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

Reimplemented from XrdOucCacheIO.

Referenced by XrdPosixPrepIO::ReadV().

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

Reimplemented from XrdOucCacheIO2.

long long XrdPosixFile::setOffset ( long long  offs)
inline
bool XrdPosixFile::Stat ( XrdCl::XRootDStatus Status,
bool  force = false 
)
int XrdPosixFile::Sync ( )
virtual

Implements XrdOucCacheIO.

Referenced by XrdPosixPrepIO::Sync().

void XrdPosixFile::Sync ( XrdOucCacheIOCB iocb)
virtual

Reimplemented from XrdOucCacheIO2.

int XrdPosixFile::Trunc ( long long  Offset)
virtual

Implements XrdOucCacheIO.

Referenced by XrdPosixPrepIO::Trunc().

void XrdPosixFile::updLock ( )
inline
void XrdPosixFile::UpdtSize ( size_t  newsz)
inline
void XrdPosixFile::updUnLock ( )
inline
bool XrdPosixFile::Who ( XrdPosixFile **  fileP)
inlinevirtual

Reimplemented from XrdPosixObject.

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

Implements XrdOucCacheIO.

Referenced by XrdPosixPrepIO::Write().

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

Reimplemented from XrdOucCacheIO2.

Member Data Documentation

union { ... }
union { ... }
XrdCl::File XrdPosixFile::clFile
int XrdPosixFile::cOpt
long long XrdPosixFile::currOffset

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

XrdPosixFile* XrdPosixFile::ddList
static
XrdPosixFile* XrdPosixFile::ddLost
static
XrdSysMutex XrdPosixFile::ddMutex
static
int XrdPosixFile::ddNum
static
bool XrdPosixFile::ddPosted
static
XrdSysSemaphore XrdPosixFile::ddSem
static
char* XrdPosixFile::fLoc
private
char* XrdPosixFile::fOpen
private

Referenced by Origin().

char* XrdPosixFile::fPath
private

Referenced by Path().

char XrdPosixFile::isStream
private
const int XrdPosixFile::isStrm = 2
static
const int XrdPosixFile::isUpdt = 4
static
ino_t XrdPosixFile::myInode
mode_t XrdPosixFile::myMode
time_t XrdPosixFile::myMtime
dev_t XrdPosixFile::myRdev
size_t XrdPosixFile::mySize

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

XrdPosixFile* XrdPosixFile::nextFile
int XrdPosixFile::numTries
XrdPosixPrepIO* XrdPosixFile::PrepIO
const int XrdPosixFile::realFD = 1
static
char* XrdPosixFile::sfSFX
static
short XrdPosixFile::sfSLN
static
XrdPosixCallBack* XrdPosixFile::theCB
XrdOucCacheIO2* XrdPosixFile::XCio

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