32 #include <sys/types.h>
70 if (fsFile)
delete fsFile;
71 if (fSessP) fSessP->Recycle();
90 if (fsFile)
return fsFile->close();
94 return fSessP->close();
108 if (fsFile)
return fsFile->fctl(cmd, args, out_error);
132 if (fsFile)
return fsFile->fctl(cmd, alen, args, client);
136 return fSessP->fctl(cmd, alen, args, client);
148 if (fsFile)
return fsFile->FName();
152 return fSessP->FName();
173 if (fsFile)
return fsFile->getCXinfo(cxtype, cxrsz);
196 if (fsFile)
return fsFile->getMmap(Addr, Size);
226 static const char *epname =
"open";
231 if (fsFile || fSessP)
239 return fsFile->open(path, open_mode,
Mode, client, info);
249 eNum = fSessP->open(path, Open_Env, open_mode);
250 if (eNum) {fSessP->Recycle(); fSessP = 0;}
272 if (fsFile)
return fsFile->read(offset, blen);
301 if (fsFile)
return fsFile->read(offset, buff, blen);
305 return fSessP->read(offset, buff, blen);
317 if (fsFile)
return fsFile->read(aiop);
348 if (fsFile)
return fsFile->readv(readV, readCount);
364 if (fsFile)
return fsFile->SendData(sfDio, offset, size);
368 return fSessP->SendData(sfDio, offset, size);
377 if (fSessP) fSessP->setXio(xP);
378 if (fsFile) fsFile->setXio(xP);
397 if (fsFile)
return fsFile->stat(buf);
401 memset(buf, 0 ,
sizeof(
struct stat));
421 if (fsFile)
return fsFile->sync();
437 if (fsFile)
return fsFile->sync(aiop);
460 if (fsFile)
return fsFile->truncate(flen);
464 return fSessP->truncate(flen);
492 if (fsFile)
return fsFile->write(offset, buff, blen);
496 return fSessP->write(offset, buff, blen);
508 if (fsFile)
return fsFile->write(aiop);
int stat(const char *path, struct stat *buf)
long long XrdSfsFileOffset
unsigned long long Find(const char *pathname)
virtual void doneRead()=0
virtual void doneWrite()=0
virtual XrdSfsFile * newFile(char *user=0, int MonID=0)=0
static XrdSsiFileSess * Alloc(XrdOucErrInfo &einfo, const char *user)
XrdSfsXferSize readv(XrdOucIOVec *readV, int readCount)
int fctl(const int cmd, const char *args, XrdOucErrInfo &out_error)
XrdSfsXferSize write(XrdSfsFileOffset fileOffset, const char *buffer, XrdSfsXferSize buffer_size)
int getCXinfo(char cxtype[4], int &cxrsz)
void setXio(XrdSfsXio *xP)
int getMmap(void **Addr, off_t &Size)
int stat(struct stat *buf)
int open(const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client=0, const char *opaque=0)
int truncate(XrdSfsFileOffset fileOffset)
int read(XrdSfsFileOffset fileOffset, XrdSfsXferSize preread_sz)
int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
static int Emsg(const char *pfx, int ecode, const char *op, const char *path, XrdOucErrInfo &eDest)