xrootd
XrdOssApi.hh
Go to the documentation of this file.
1#ifndef _XRDOSS_API_H
2#define _XRDOSS_API_H
3/******************************************************************************/
4/* */
5/* X r d O s s A p i . h h */
6/* */
7/* (c) 2003 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* All Rights Reserved */
9/* Produced by Andrew Hanushevsky for Stanford University under contract */
10/* DE-AC02-76-SFO0515 with the Department of Energy */
11/* */
12/* This file is part of the XRootD software suite. */
13/* */
14/* XRootD is free software: you can redistribute it and/or modify it under */
15/* the terms of the GNU Lesser General Public License as published by the */
16/* Free Software Foundation, either version 3 of the License, or (at your */
17/* option) any later version. */
18/* */
19/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22/* License for more details. */
23/* */
24/* You should have received a copy of the GNU Lesser General Public License */
25/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27/* */
28/* The copyright holder's institutional names and contributor's names may not */
29/* be used to endorse or promote products derived from this software without */
30/* specific prior written permission of the institution or contributor. */
31/******************************************************************************/
32
33#include <sys/types.h>
34#include <errno.h>
36
37#include "XrdOss/XrdOss.hh"
39#include "XrdOss/XrdOssError.hh"
42#include "XrdOuc/XrdOucPList.hh"
44#include "XrdSys/XrdSysError.hh"
46
47/******************************************************************************/
48/* o o s s _ D i r */
49/******************************************************************************/
50
51class XrdOssDir : public XrdOssDF
52{
53public:
54int Close(long long *retsz=0);
55int Opendir(const char *, XrdOucEnv &);
56int Readdir(char *buff, int blen);
57int StatRet(struct stat *buff);
58
59 // Constructor and destructor
60 XrdOssDir(const char *tid) : lclfd(0), mssfd(0), Stat(0), tident(tid),
61 pflags(0), ateof(0), isopen(0), dirFD(0)
62 {}
63 ~XrdOssDir() {if (isopen > 0) Close(); isopen = 0;}
64private:
65 DIR *lclfd;
66 void *mssfd;
67struct stat *Stat;
68const char *tident;
69unsigned long long pflags;
70 int ateof;
71 int isopen;
72 int dirFD;
73};
74
75/******************************************************************************/
76/* o o s s _ F i l e */
77/******************************************************************************/
78
79class oocx_CXFile;
80class XrdSfsAio;
81class XrdOssCache_FS;
82class XrdOssMioFile;
83
84class XrdOssFile : public XrdOssDF
85{
86public:
87
88// The following two are virtual functions to allow for upcasting derivations
89// of this implementation
90//
91virtual int Close(long long *retsz=0);
92virtual int Open(const char *, int, mode_t, XrdOucEnv &);
93
94int Fchmod(mode_t mode);
95int Fstat(struct stat *);
96int Fsync();
97int Fsync(XrdSfsAio *aiop);
98int Ftruncate(unsigned long long);
99int getFD() {return fd;}
100off_t getMmap(void **addr);
101int isCompressed(char *cxidp=0);
102ssize_t Read( off_t, size_t);
103ssize_t Read( void *, off_t, size_t);
104int Read(XrdSfsAio *aiop);
105ssize_t ReadV(XrdOucIOVec *readV, int);
106ssize_t ReadRaw( void *, off_t, size_t);
107ssize_t Write(const void *, off_t, size_t);
108int Write(XrdSfsAio *aiop);
109
110 // Constructor and destructor
111 XrdOssFile(const char *tid)
112 {cxobj = 0; rawio = 0; cxpgsz = 0; cxid[0] = '\0';
113 mmFile = 0; tident = tid;
114 }
115
116virtual ~XrdOssFile() {if (fd >= 0) Close();}
117
118private:
119int Open_ufs(const char *, int, int, unsigned long long);
120
121static int AioFailure;
122oocx_CXFile *cxobj;
125const char *tident;
126long long FSize;
129char cxid[4];
130};
131
132/******************************************************************************/
133/* o o s s _ S y s */
134/******************************************************************************/
135
136class XrdFrcProxy;
139class XrdOssCreateInfo;
140class XrdOucMsubs;
141class XrdOucName2Name;
142class XrdOucProg;
143class XrdOssSpace;
144class XrdOssStage_Req;
145
146struct XrdVersionInfo;
147
148class XrdOssSys : public XrdOss
149{
150public:
151virtual XrdOssDF *newDir(const char *tident)
152 {return (XrdOssDF *)new XrdOssDir(tident);}
153virtual XrdOssDF *newFile(const char *tident)
154 {return (XrdOssDF *)new XrdOssFile(tident);}
155
156int Chmod(const char *, mode_t mode, XrdOucEnv *eP=0);
157int Configure(const char *, XrdSysError &, XrdOucEnv *envP);
159virtual
160int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0);
161int GenLocalPath(const char *, char *);
162int GenRemotePath(const char *, char *);
163int Init(XrdSysLogger *, const char *, XrdOucEnv *envP);
164int Init(XrdSysLogger *lP, const char *cP) {return Init(lP, cP, 0);}
165int IsRemote(const char *path)
166 {return (RPList.Find(path) & XRDEXP_REMOTE) != 0;}
167int Lfn2Pfn(const char *Path, char *buff, int blen);
168const char *Lfn2Pfn(const char *Path, char *buff, int blen, int &rc);
169int Mkdir(const char *, mode_t mode, int mkpath=0, XrdOucEnv *eP=0);
170int Mkpath(const char *, mode_t mode);
171unsigned long long PathOpts(const char *path) {return RPList.Find(path);}
172int Reloc(const char *tident, const char *path,
173 const char *cgName, const char *anchor=0);
174int Remdir(const char *, int Opts=0, XrdOucEnv *eP=0); // In Unlink()
175int Rename(const char *, const char *,
176 XrdOucEnv *eP1=0, XrdOucEnv *eP2=0);
177virtual
178int Stage(const char *, const char *, XrdOucEnv &, int, mode_t, unsigned long long );
179void *Stage_In(void *carg);
180int Stat(const char *, struct stat *, int opts=0, XrdOucEnv *Env=0);
181int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *Env=0);
182int StatFS(const char *path, unsigned long long &Opt,
183 long long &fSize, long long &fSpace);
184int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen);
185int StatPF(const char *, struct stat *);
186int StatVS(XrdOssVSInfo *sP, const char *sname=0, int updt=0);
187int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *Env=0);
188int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *Env=0);
189int Truncate(const char *, unsigned long long Size, XrdOucEnv *eP=0);
190int Unlink(const char *, int Opts=0, XrdOucEnv *eP=0);
191
192int Stats(char *bp, int bl);
193
194static int AioInit();
195static int AioAllOk;
196
197static int runOld; // Run in backward compatability mode
198
199static char tryMmap; // Memory mapped files enabled
200static char chkMmap; // Memory mapped files are selective
201
202int MSS_Closedir(void *);
203int MSS_Create(const char *path, mode_t, XrdOucEnv &);
204void *MSS_Opendir(const char *, int &rc);
205int MSS_Readdir(void *fd, char *buff, int blen);
206int MSS_Remdir(const char *, const char *) {return -ENOTSUP;}
207int MSS_Rename(const char *, const char *);
208int MSS_Stat(const char *, struct stat *buff=0);
209int MSS_Unlink(const char *);
210
211static const int MaxArgs = 15;
212
213char *ConfigFN; // -> Pointer to the config file name
214char *LocalRoot; // -> Path prefix for local filename
215char *RemoteRoot; // -> Path prefix for remote filename
216int MaxTwiddle; // Maximum seconds of internal wait
217int StageRealTime; // If 1, Invoke stage command on demand
218int StageAsync; // If 1, return EINPROGRESS to the caller
219int StageCreate; // If 1, use open path to create files
220int StageFormat; // Format for default stagecmd
221char *StageCmd; // -> Staging command to use
222char *StageMsg; // -> Staging message to be passed
223XrdOucMsubs *StageSnd; // -> Parsed Message
224XrdFrcProxy *StageFrm; // -> Built-in stagecmd or zero
225
226char *StageEvents; // -> file:////<adminpath> if async staging
227int StageEvSize; // Length of above
228int StageActLen; // Length of below
229char *StageAction; // -> "wq " if sync | "wfn " if async
230
233int StageAnum; // Count of valid Arg/Aln array elements
234char *RSSCmd; // -> Remote Storage Service Command
235int isMSSC; // RSSCmd is old-style msscmd
236int RSSTout; // RSSCmd response timeout
237long long MaxSize; // Maximum file size (*obsolete*)
238int FDFence; // Smallest file FD number allowed
239int FDLimit; // Largest file FD number allowed
240unsigned long long DirFlags;// Default directory settings
241int Trace; // Trace flags
242int Solitary; // True if running in stand-alone mode
243int OptFlags; // General option flags
244
245XrdOucPListAnchor SPList; // The path to space list
246#define spAssign 1
247
248char *N2N_Lib; // -> Name2Name Library Path
249char *N2N_Parms; // -> Name2Name Object Parameters
250XrdOucName2Name *lcl_N2N; // -> File mapper for local files
251XrdOucName2Name *rmt_N2N; // -> File mapper for remote files
252XrdOucName2Name *the_N2N; // -> File mapper object
253XrdOucPListAnchor RPList; // The real path list
254OssDPath *DPList; // The stat path list
256short numDP;
257short numCG;
258
259char *STT_Lib; // -> StatInfo Library Path
260char *STT_Parms; // -> StatInfo Library Paramaters
261union {
264 };
269
270long long prPBits; // Page lo order bit mask
271long long prPMask; // Page hi order bit mask
272int prPSize; // preread page size
273int prBytes; // preread byte limit
274int prActive; // preread activity count
275short prDepth; // preread depth
276short prQSize; // preread maximum allowed
277
278XrdVersionInfo *myVersion; // Compilation version set by constructor
279
281virtual ~XrdOssSys() {}
282
283protected:
284// Cache management related data and methods
285//
286long long minalloc; // Minimum allocation
287int ovhalloc; // Allocation overage
288int fuzalloc; // Allocation fuzz
289int cscanint; // Seconds between cache scans
290int xfrspeed; // Average transfer speed (bytes/second)
291int xfrovhd; // Minimum seconds to get a file
292int xfrhold; // Second hold limit on failing requests
293int xfrkeep; // Second keep queued requests
294int xfrthreads; // Number of threads for staging
295int xfrtcount; // Actual count of threads (used for dtr)
296long long pndbytes; // Total bytes to be staged (pending)
297long long stgbytes; // Total bytes being staged (active)
298long long totbytes; // Total bytes were staged (active+pending)
299int totreqs; // Total successful requests
300int badreqs; // Total unsuccessful requests
301
302XrdOucProg *StageProg; // Command or manager than handles staging
303XrdOucProg *RSSProg; // Command for Remote Storage Services
304
305char *UDir; // -> Usage logdir
306char *QFile; // -> Quota file
307char *xfrFdir; // -> Fail file base dir
308int xfrFdln; // strlen(xfrFDir)
309
310int Alloc_Cache(XrdOssCreateInfo &, XrdOucEnv &);
311int Alloc_Local(XrdOssCreateInfo &, XrdOucEnv &);
312int BreakLink(const char *local_path, struct stat &statbuff);
315int SetFattr(XrdOssCreateInfo &crInfo, int datfd, time_t mtime);
316void doScrub();
317int Find(XrdOssStage_Req *req, void *carg);
318int getCname(const char *path, struct stat *sbuff, char *cgbuff);
319int getStats(char *buff, int blen);
321int getID(const char *, XrdOucEnv &, char *, int);
322time_t HasFile(const char *fn, const char *sfx, time_t *mTime=0);
323int Stage_QT(const char *, const char *, XrdOucEnv &, int, mode_t);
324int Stage_RT(const char *, const char *, XrdOucEnv &, unsigned long long);
325
326// Configuration related methods
327//
328void ConfigMio(XrdSysError &Eroute);
329int ConfigN2N(XrdSysError &Eroute, XrdOucEnv *envP);
332void ConfigSpace(const char *Lfn);
333void ConfigSpath(XrdSysError &Eroute, const char *Pn,
334 unsigned long long &Fv, int noMSS);
339void ConfigStats(dev_t Devnum, char *lP);
341void List_Path(const char *, const char *, unsigned long long, XrdSysError &);
352int xspace(XrdOucStream &Config, XrdSysError &Eroute, int *isCD=0);
354 const char *grp, bool isAsgn);
355int xspaceBuild(char *grp, char *fn, int isxa, XrdSysError &Eroute);
361
362// Mass storage related methods
363//
364int tranmode(char *);
365int MSS_Xeq(XrdOucStream **xfd, int okerr,
366 const char *cmd, const char *arg1=0, const char *arg2=0);
367
368// Other methods
369//
370int RenameLink(char *old_path, char *new_path);
371int RenameLink2(int Llen, char *oLnk, char *old_path,
372 char *nLnk, char *new_path);
373int RenameLink3(char *cPath, char *old_path, char *new_path);
374};
375
376/******************************************************************************/
377/* A P I S p e c i f i c D e f i n e s */
378/******************************************************************************/
379
380// The Check_RO macro is valid only for XrdOssSys objects.
381//
382#define Check_RO(act, flags, path, opname) \
383 XRDEXP_REMOTE & (flags = PathOpts(path)); \
384 if (flags & XRDEXP_NOTRW) \
385 return OssEroute.Emsg(#act, -XRDOSS_E8005, opname, path)
386
387#define Check_RW(act, path, opname) \
388 if (PathOpts(path) & XRDEXP_NOTRW) \
389 return OssEroute.Emsg(#act, -XRDOSS_E8005, opname, path)
390#endif
int(* XrdOssStatInfo2_t)(const char *path, struct stat *buff, int opts, XrdOucEnv *envP, const char *lfn)
Definition: XrdOssStatInfo.hh:66
int(* XrdOssStatInfo_t)(const char *path, struct stat *buff, int opts, XrdOucEnv *envP)
Definition: XrdOssStatInfo.hh:63
#define XRDEXP_REMOTE
Definition: XrdOucExport.hh:84
#define stat(a, b)
Definition: XrdPosix.hh:96
Definition: XrdFrcProxy.hh:40
Definition: XrdOssCache.hh:129
Definition: XrdOssCache.hh:165
Definition: XrdOssCache.hh:78
Definition: XrdOss.hh:60
int fd
Definition: XrdOss.hh:132
Definition: XrdOssApi.hh:52
void * mssfd
Definition: XrdOssApi.hh:66
int StatRet(struct stat *buff)
int Opendir(const char *, XrdOucEnv &)
int isopen
Definition: XrdOssApi.hh:71
XrdOssDir(const char *tid)
Definition: XrdOssApi.hh:60
struct stat * Stat
Definition: XrdOssApi.hh:67
unsigned long long pflags
Definition: XrdOssApi.hh:69
DIR * lclfd
Definition: XrdOssApi.hh:65
int ateof
Definition: XrdOssApi.hh:70
~XrdOssDir()
Definition: XrdOssApi.hh:63
int dirFD
Definition: XrdOssApi.hh:72
int Readdir(char *buff, int blen)
int Close(long long *retsz=0)
const char * tident
Definition: XrdOssApi.hh:68
Definition: XrdOssApi.hh:85
int Write(XrdSfsAio *aiop)
oocx_CXFile * cxobj
Definition: XrdOssApi.hh:122
virtual ~XrdOssFile()
Definition: XrdOssApi.hh:116
virtual int Close(long long *retsz=0)
XrdOssFile(const char *tid)
Definition: XrdOssApi.hh:111
int Open_ufs(const char *, int, int, unsigned long long)
int Fchmod(mode_t mode)
int isCompressed(char *cxidp=0)
virtual int Open(const char *, int, mode_t, XrdOucEnv &)
ssize_t Read(off_t, size_t)
int Read(XrdSfsAio *aiop)
long long FSize
Definition: XrdOssApi.hh:126
off_t getMmap(void **addr)
ssize_t Read(void *, off_t, size_t)
XrdOssMioFile * mmFile
Definition: XrdOssApi.hh:124
const char * tident
Definition: XrdOssApi.hh:125
int Fstat(struct stat *)
int Fsync(XrdSfsAio *aiop)
int rawio
Definition: XrdOssApi.hh:127
static int AioFailure
Definition: XrdOssApi.hh:121
ssize_t ReadV(XrdOucIOVec *readV, int)
int cxpgsz
Definition: XrdOssApi.hh:128
XrdOssCache_FS * cacheP
Definition: XrdOssApi.hh:123
int getFD()
Definition: XrdOssApi.hh:99
char cxid[4]
Definition: XrdOssApi.hh:129
int Ftruncate(unsigned long long)
ssize_t Write(const void *, off_t, size_t)
ssize_t ReadRaw(void *, off_t, size_t)
Definition: XrdOssMioFile.hh:37
Definition: XrdOssSpace.hh:36
Definition: XrdOssStage.hh:50
Definition: XrdOssApi.hh:149
void Config_Display(XrdSysError &)
int xstg(XrdOucStream &Config, XrdSysError &Eroute)
int badreqs
Definition: XrdOssApi.hh:300
int GenRemotePath(const char *, char *)
int StageCreate
Definition: XrdOssApi.hh:219
XrdOucPListAnchor SPList
Definition: XrdOssApi.hh:245
char STT_DoN2N
Definition: XrdOssApi.hh:266
char STT_V2
Definition: XrdOssApi.hh:267
int ConfigXeq(char *, XrdOucStream &, XrdSysError &)
int FDLimit
Definition: XrdOssApi.hh:239
int totreqs
Definition: XrdOssApi.hh:299
int Configure(const char *, XrdSysError &, XrdOucEnv *envP)
char * LocalRoot
Definition: XrdOssApi.hh:214
OssDPath * DPList
Definition: XrdOssApi.hh:254
int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen)
int STT_PreOp
Definition: XrdOssApi.hh:265
int MSS_Readdir(void *fd, char *buff, int blen)
int SetFattr(XrdOssCreateInfo &crInfo, int datfd, time_t mtime)
int MSS_Rename(const char *, const char *)
char * N2N_Parms
Definition: XrdOssApi.hh:249
void doScrub()
int xtrace(XrdOucStream &Config, XrdSysError &Eroute)
time_t HasFile(const char *fn, const char *sfx, time_t *mTime=0)
int StatVS(XrdOssVSInfo *sP, const char *sname=0, int updt=0)
short numCG
Definition: XrdOssApi.hh:257
long long totbytes
Definition: XrdOssApi.hh:298
long long minalloc
Definition: XrdOssApi.hh:286
int StageAln[MaxArgs]
Definition: XrdOssApi.hh:232
int IsRemote(const char *path)
Definition: XrdOssApi.hh:165
int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *Env=0)
int Init(XrdSysLogger *, const char *, XrdOucEnv *envP)
int tranmode(char *)
char * StageEvents
Definition: XrdOssApi.hh:226
int Stage_RT(const char *, const char *, XrdOucEnv &, unsigned long long)
int getStats(char *buff, int blen)
int xstl(XrdOucStream &Config, XrdSysError &Eroute)
void ConfigSpace(XrdSysError &Eroute)
int Mkdir(const char *, mode_t mode, int mkpath=0, XrdOucEnv *eP=0)
int getCname(const char *path, struct stat *sbuff, char *cgbuff)
int StageRealTime
Definition: XrdOssApi.hh:217
short prDepth
Definition: XrdOssApi.hh:275
int FDFence
Definition: XrdOssApi.hh:238
int Unlink(const char *, int Opts=0, XrdOucEnv *eP=0)
int ConfigStage(XrdSysError &Eroute)
int xusage(XrdOucStream &Config, XrdSysError &Eroute)
static char chkMmap
Definition: XrdOssApi.hh:200
int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *Env=0)
int xfrthreads
Definition: XrdOssApi.hh:294
int OptFlags
Definition: XrdOssApi.hh:243
int xspace(XrdOucStream &Config, XrdSysError &Eroute, int *isCD=0)
int StatFS(const char *path, unsigned long long &Opt, long long &fSize, long long &fSpace)
int isMSSC
Definition: XrdOssApi.hh:235
void List_Path(const char *, const char *, unsigned long long, XrdSysError &)
char * QFile
Definition: XrdOssApi.hh:306
int MSS_Closedir(void *)
int prBytes
Definition: XrdOssApi.hh:273
int xmemf(XrdOucStream &Config, XrdSysError &Eroute)
int RenameLink3(char *cPath, char *old_path, char *new_path)
void * Stage_In(void *carg)
virtual int Stage(const char *, const char *, XrdOucEnv &, int, mode_t, unsigned long long)
int Alloc_Cache(XrdOssCreateInfo &, XrdOucEnv &)
char * ConfigFN
Definition: XrdOssApi.hh:213
int StageFormat
Definition: XrdOssApi.hh:220
int ovhalloc
Definition: XrdOssApi.hh:287
void ConfigMio(XrdSysError &Eroute)
void ConfigStats(XrdSysError &Eroute)
virtual ~XrdOssSys()
Definition: XrdOssApi.hh:281
char * StageAction
Definition: XrdOssApi.hh:229
int xcachescan(XrdOucStream &Config, XrdSysError &Eroute)
char STT_DoARE
Definition: XrdOssApi.hh:268
char * UDir
Definition: XrdOssApi.hh:305
int StageActLen
Definition: XrdOssApi.hh:228
int xfdlimit(XrdOucStream &Config, XrdSysError &Eroute)
int ConfigN2N(XrdSysError &Eroute, XrdOucEnv *envP)
XrdOucProg * StageProg
Definition: XrdOssApi.hh:302
XrdOucName2Name * the_N2N
Definition: XrdOssApi.hh:252
int RenameLink2(int Llen, char *oLnk, char *old_path, char *nLnk, char *new_path)
void ConfigStats(dev_t Devnum, char *lP)
int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *Env=0)
short prQSize
Definition: XrdOssApi.hh:276
const char * Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
char * StageArg[MaxArgs]
Definition: XrdOssApi.hh:231
long long MaxSize
Definition: XrdOssApi.hh:237
int StageAnum
Definition: XrdOssApi.hh:233
unsigned long long PathOpts(const char *path)
Definition: XrdOssApi.hh:171
int Mkpath(const char *, mode_t mode)
int xspaceBuild(char *grp, char *fn, int isxa, XrdSysError &Eroute)
int prPSize
Definition: XrdOssApi.hh:272
static int AioInit()
static const int MaxArgs
Definition: XrdOssApi.hh:211
int GetFile(XrdOssStage_Req *req)
int Init(XrdSysLogger *lP, const char *cP)
Definition: XrdOssApi.hh:164
int Trace
Definition: XrdOssApi.hh:241
int Rename(const char *, const char *, XrdOucEnv *eP1=0, XrdOucEnv *eP2=0)
int GenLocalPath(const char *, char *)
int RSSTout
Definition: XrdOssApi.hh:236
int prActive
Definition: XrdOssApi.hh:274
int MSS_Unlink(const char *)
int xfrspeed
Definition: XrdOssApi.hh:290
XrdOucName2Name * lcl_N2N
Definition: XrdOssApi.hh:250
long long prPMask
Definition: XrdOssApi.hh:271
long long prPBits
Definition: XrdOssApi.hh:270
XrdOssStatInfo_t STT_Func
Definition: XrdOssApi.hh:262
virtual XrdOssDF * newFile(const char *tident)
Definition: XrdOssApi.hh:153
int fuzalloc
Definition: XrdOssApi.hh:288
int BreakLink(const char *local_path, struct stat &statbuff)
int cscanint
Definition: XrdOssApi.hh:289
int StageAsync
Definition: XrdOssApi.hh:218
int xprerd(XrdOucStream &Config, XrdSysError &Eroute)
int ConfigStatLib(XrdSysError &Eroute, XrdOucEnv *envP)
void ConfigSpace(const char *Lfn)
XrdOucProg * RSSProg
Definition: XrdOssApi.hh:303
char * STT_Parms
Definition: XrdOssApi.hh:260
int StatPF(const char *, struct stat *)
virtual XrdOssDF * newDir(const char *tident)
Definition: XrdOssApi.hh:151
XrdOssStatInfo2_t STT_Fund
Definition: XrdOssApi.hh:263
long long pndbytes
Definition: XrdOssApi.hh:296
int xspace(XrdOucStream &Config, XrdSysError &Eroute, const char *grp, bool isAsgn)
int xpath(XrdOucStream &Config, XrdSysError &Eroute)
static char tryMmap
Definition: XrdOssApi.hh:199
int Lfn2Pfn(const char *Path, char *buff, int blen)
XrdVersionInfo * myVersion
Definition: XrdOssApi.hh:278
char * N2N_Lib
Definition: XrdOssApi.hh:248
int xfrovhd
Definition: XrdOssApi.hh:291
int MSS_Stat(const char *, struct stat *buff=0)
int MSS_Remdir(const char *, const char *)
Definition: XrdOssApi.hh:206
int xcache(XrdOucStream &Config, XrdSysError &Eroute)
long long stgbytes
Definition: XrdOssApi.hh:297
int Find(XrdOssStage_Req *req, void *carg)
void ConfigSpath(XrdSysError &Eroute, const char *Pn, unsigned long long &Fv, int noMSS)
int Stat(const char *, struct stat *, int opts=0, XrdOucEnv *Env=0)
char * STT_Lib
Definition: XrdOssApi.hh:259
int ConfigStageC(XrdSysError &Eroute)
int CalcTime()
int xfrFdln
Definition: XrdOssApi.hh:308
XrdOucMsubs * StageSnd
Definition: XrdOssApi.hh:223
int xxfr(XrdOucStream &Config, XrdSysError &Eroute)
short numDP
Definition: XrdOssApi.hh:256
XrdFrcProxy * StageFrm
Definition: XrdOssApi.hh:224
unsigned long long DirFlags
Definition: XrdOssApi.hh:240
int Remdir(const char *, int Opts=0, XrdOucEnv *eP=0)
static int runOld
Definition: XrdOssApi.hh:197
int Chmod(const char *, mode_t mode, XrdOucEnv *eP=0)
int MSS_Create(const char *path, mode_t, XrdOucEnv &)
int StageEvSize
Definition: XrdOssApi.hh:227
int getID(const char *, XrdOucEnv &, char *, int)
int lenDP
Definition: XrdOssApi.hh:255
XrdOucPListAnchor RPList
Definition: XrdOssApi.hh:253
int Stats(char *bp, int bl)
int xfrhold
Definition: XrdOssApi.hh:292
static int AioAllOk
Definition: XrdOssApi.hh:195
int CalcTime(XrdOssStage_Req *req)
int ConfigProc(XrdSysError &Eroute)
int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
int xfrtcount
Definition: XrdOssApi.hh:295
int RenameLink(char *old_path, char *new_path)
int Truncate(const char *, unsigned long long Size, XrdOucEnv *eP=0)
int Stage_QT(const char *, const char *, XrdOucEnv &, int, mode_t)
int MSS_Xeq(XrdOucStream **xfd, int okerr, const char *cmd, const char *arg1=0, const char *arg2=0)
char * StageCmd
Definition: XrdOssApi.hh:221
char * StageMsg
Definition: XrdOssApi.hh:222
char * RemoteRoot
Definition: XrdOssApi.hh:215
int xmaxsz(XrdOucStream &Config, XrdSysError &Eroute)
int xfrkeep
Definition: XrdOssApi.hh:293
int Alloc_Local(XrdOssCreateInfo &, XrdOucEnv &)
int Solitary
Definition: XrdOssApi.hh:242
int MaxTwiddle
Definition: XrdOssApi.hh:216
char * RSSCmd
Definition: XrdOssApi.hh:234
int xdefault(XrdOucStream &Config, XrdSysError &Eroute)
void * MSS_Opendir(const char *, int &rc)
virtual int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0)
int xnml(XrdOucStream &Config, XrdSysError &Eroute)
XrdOucName2Name * rmt_N2N
Definition: XrdOssApi.hh:251
int xalloc(XrdOucStream &Config, XrdSysError &Eroute)
char * xfrFdir
Definition: XrdOssApi.hh:307
Definition: XrdOss.hh:157
Definition: XrdOss.hh:174
Definition: XrdOucEnv.hh:42
Definition: XrdOucMsubs.hh:91
Definition: XrdOucName2Name.hh:49
Definition: XrdOucPList.hh:89
unsigned long long Find(const char *pathname)
Definition: XrdOucPList.hh:112
Definition: XrdOucProg.hh:38
Definition: XrdOucStream.hh:46
Definition: XrdSfsAio.hh:58
Definition: XrdSysError.hh:90
Definition: XrdSysLogger.hh:53
XrdCmsConfig Config
Definition: XrdOssConfig.hh:49
Definition: XrdOucIOVec.hh:41