1#ifndef __SSI_FILESESS_H__
2#define __SSI_FILESESS_H__
57 {
return rTab.DeferFinalize(req,itemID);}
60 {
return rTab.DeferredFinalizeDone(req, itemID);}
64 int close(
bool viaDel=
false);
66 int fctl(
const int cmd,
71 const char *
FName() {
return gigID;}
73 int open(
const char *fileName,
104 {Init(einfo, user,
false);}
110class reqItemCB :
public XrdOucEICB
115virtual ~reqItemCB() { }
117void Done(
int &Result, XrdOucErrInfo *cbInfo,
119 {rqstP->Done(Result,cbInfo,path); rqstP.reset();}
121int Same(
unsigned long long arg1,
unsigned long long arg2)
124void setReq(XrdSsiRRTableItem<XrdSsiFileReq> &&r) { rqstP = std::move(r); }
126XrdSsiRRTableItem<XrdSsiFileReq> rqstP;
129void Init(XrdOucErrInfo &einfo,
const char *user,
bool forReuse);
130bool NewRequest(
unsigned int reqid, XrdOucBuffer *oP,
136static XrdSysMutex arMutex;
137static XrdSsiFileSess *freeList;
144XrdSsiFileResource fileResource;
151XrdOucBuffer *oucBuff;
152XrdSsiFileSess *nextFree;
159XrdSsiRRTable<XrdSsiFileReq> rTab;
160reqItemCB fctlCallBack;
161reqItemCB attnFinCallBack;
long long XrdSfsFileOffset
class XrdBuffer * XrdSfsXioHandle
void setXio(XrdSfsXio *xP)
int fctl(const int cmd, int alen, const char *args, const XrdSecEntity *client)
bool DeferFinalize(XrdSsiFileReq *req, uint64_t itemID)
void DeferredFinalizeDone(XrdSsiFileReq *req, uint64_t itemID)
bool AttnInfo(XrdOucErrInfo &eInfo, const XrdSsiRespInfo *respP, unsigned int reqID)
XrdOucErrInfo * errInfo()
int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
static XrdSsiFileSess * Alloc(XrdOucErrInfo &einfo, const char *user)
XrdSsiFileResource & Resource()