50 error.setErrInfo(ENOTSUP,
"Not supported.");
66 {
case cpCreate:
error.setErrInfo(EDQUOT,
"Checkpoint quota exceeded.");
69 case cpRestore:
error.setErrInfo(ENOENT,
"Checkpoint does not exist.");
71 default:
error.setErrInfo(EINVAL,
"Invalid checkpoint request.");
84 error.setErrInfo(ENOTSUP,
"Not supported.");
91 error.setErrInfo(ENOTSUP,
"Not supported.");
104 (void)cmd; (void)alen; (void)args; (void)client;
122 if ((bytes =
read(offset, buffer, rdlen)) <= 0)
return bytes;
165 snprintf(
eMsg,
sizeof(
eMsg),
"Checksum error at offset %lld.", (
long long) badoff);
173 return write(offset, buffer, wrlen);
194 for (
auto it = rlist.begin(); it != rlist.end(); it++)
208 for (
int i = 0; i < rdvCnt; i++)
209 {rdsz =
read(readV[i].offset,
210 readV[i].data, readV[i].size);
211 if (rdsz != readV[i].size)
212 {
if (rdsz < 0)
return rdsz;
213 error.setErrInfo(ESPIPE,
"read past eof");
229 (void)sfDio; (void)offset; (void)size;
242 for (
int i = 0; i < wdvCnt; i++)
243 {wrsz =
write(writeV[i].offset,
244 writeV[i].data, writeV[i].size);
245 if (wrsz != writeV[i].size)
246 {
if (wrsz < 0)
return wrsz;
247 error.setErrInfo(ESPIPE,
"write past eof");
279 (void)Func; (void)csName; (void)path; (void)eInfo; (void)client;
294 (void)faReq; (void)client;
309 (void)cmd; (void)args; (void)eInfo; (void)client;
323 (void)gpAct, (
void)gpReq; (void)client;
std::vector< XrdOucRange > XrdOucRangeList
long long XrdSfsFileOffset
int setErrInfo(int code, const char *emsg)
static void csCalc(const char *data, off_t offs, size_t count, uint32_t *csval)
static bool csVer(dataInfo &dInfo, off_t &bado, int &badc)
virtual void doneRead()=0
virtual void doneWrite()=0
virtual int autoStat(struct stat *buf)
XrdSfsFileSystem()
Constructor and Destructor.
virtual int FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
virtual int chksum(csFunc Func, const char *csName, const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)
virtual int getChkPSize()
uint64_t FeatureSet
Adjust features at initialization.
virtual int gpFile(gpfFunc &gpAct, XrdSfsGPFile &gpReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
virtual int FAttr(XrdSfsFACtl *faReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
static const uint64_t Verify
Options for pgRead() and pgWrite() as noted below.
virtual XrdSfsXferSize writev(XrdOucIOVec *writeV, int wdvCnt)
virtual int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
virtual XrdSfsXferSize read(XrdSfsFileOffset offset, XrdSfsXferSize size)=0
virtual XrdSfsXferSize readv(XrdOucIOVec *readV, int rdvCnt)
virtual int Clone(XrdSfsFile &srcFile)
virtual int checkpoint(cpAct act, struct iov *range=0, int n=0)
@ cpDelete
Delete an existing checkpoint.
@ cpRestore
Restore an active checkpoint and delete it.
@ cpCreate
Create a checkpoint, one must not be active.
XrdSfsFile(const char *user=0, int MonID=0)
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
virtual XrdSfsXferSize pgRead(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize rdlen, uint32_t *csvec, uint64_t opts=0)
virtual XrdSfsXferSize pgWrite(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize wrlen, uint32_t *csvec, uint64_t opts=0)
static const uint64_t hasPGRW
Feature: pgRead and pgWrite.
static const uint64_t hasCHKP
Feature: Checkpointing.
< SFS_FSCTL_PLUGIN/PLUGIO/PLUGXC/PLUGFS parms