1 #ifndef _XROOTD_FILE_H_
2 #define _XROOTD_FILE_H_
49 bool done = (1 == refs--);
52 if (done)
delete this;
54 fhAvail.push_back(fHandle);
60 if (!refs) {fhMutex.
UnLock();
delete this;}
61 else {noMore =
true; fhMutex.
UnLock();}
66 if (fhAvail.empty()) fh = -1;
67 else {fh = fhAvail.back();
77 {fhAvail.reserve(rsv);}
84 std::vector<int> fhAvail;
131 char mode=
'r',
bool async=
false,
struct stat *sP=0);
135 int bin2hex(
char *outbuff,
char *inbuff,
int inlen);
138 static const char *TraceID;
155 #define XRD_FTABSIZE 16
172 {
if (FTab[fnum] !=
heldSpotP)
return FTab[fnum];
187 XTab(0), XTnum(0), XTfree(0)
188 {memset((
void *)FTab, 0,
sizeof(FTab));}
196 static const char *TraceID;
197 static const char *ID;
int stat(const char *path, struct stat *buf)
XrdXrootdFileHP(int rsv=2)
void Recycle(XrdXrootdMonitor *monP)
XrdXrootdFileTable(unsigned int mid=0)
int Add(XrdXrootdFile *fp)
XrdXrootdFile * Get(int fnum)
static XrdXrootdFile * heldSpotP
XrdXrootdFile * Del(XrdXrootdMonitor *monP, int fnum, bool dodel=true)
XrdXrootdFile(const char *id, const char *path, XrdSfsFile *fp, char mode='r', bool async=false, struct stat *sP=0)
static void Init(XrdXrootdFileLock *lp, XrdSysError *erP, bool sfok)