32 #include <arpa/inet.h>
85 (void)cmd; (void)alen; (void)args; (void)client;
103 if ((bytes =
read(offset, buffer, rdlen)) <= 0)
return bytes;
146 snprintf(
eMsg,
sizeof(
eMsg),
"Checksum error at offset %lld.", (
long long) badoff);
154 return write(offset, buffer, wrlen);
178 for (
int i = 0; i < rdvCnt; i++)
179 {rdsz =
read(readV[i].offset,
180 readV[i].data, readV[i].size);
181 if (rdsz != readV[i].size)
182 {
if (rdsz < 0)
return rdsz;
199 (void)sfDio; (void)offset; (void)size;
212 for (
int i = 0; i < wdvCnt; i++)
213 {wrsz =
write(writeV[i].offset,
214 writeV[i].data, writeV[i].size);
215 if (wrsz != writeV[i].size)
216 {
if (wrsz < 0)
return wrsz;
249 (void)Func; (void)csName; (void)path; (void)eInfo; (void)client;
264 (void)faReq; (void)client;
279 (void)cmd; (void)args; (void)eInfo; (void)client;
293 (void)gpAct, (
void)gpReq; (void)client;
int stat(const char *path, struct stat *buf)
long long XrdSfsFileOffset
< SFS_FSCTL_PLUGIN/PLUGIO/PLUGXC parms
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 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.
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 write(XrdSfsFileOffset offset, const char *buffer, XrdSfsXferSize size)=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.