xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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>
35 #include "XrdSys/XrdSysHeaders.hh"
36 
37 #include "XrdOss/XrdOss.hh"
38 #include "XrdOss/XrdOssConfig.hh"
39 #include "XrdOss/XrdOssError.hh"
40 #include "XrdOss/XrdOssStatInfo.hh"
41 #include "XrdOuc/XrdOucExport.hh"
42 #include "XrdOuc/XrdOucPList.hh"
43 #include "XrdOuc/XrdOucStream.hh"
44 #include "XrdSys/XrdSysError.hh"
45 #include "XrdSys/XrdSysPthread.hh"
46 
47 /******************************************************************************/
48 /* o o s s _ D i r */
49 /******************************************************************************/
50 
51 class XrdOssDir : public XrdOssDF
52 {
53 public:
54 int Close(long long *retsz=0);
55 int Opendir(const char *, XrdOucEnv &);
56 int Readdir(char *buff, int blen);
57 int 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;}
64 private:
65  DIR *lclfd;
66  void *mssfd;
67 struct stat *Stat;
68 const char *tident;
69 unsigned 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 
79 class oocx_CXFile;
80 class XrdSfsAio;
81 class XrdOssCache_FS;
82 class XrdOssMioFile;
83 
84 class XrdOssFile : public XrdOssDF
85 {
86 public:
87 
88 // The following two are virtual functions to allow for upcasting derivations
89 // of this implementation
90 //
91 virtual int Close(long long *retsz=0);
92 virtual int Open(const char *, int, mode_t, XrdOucEnv &);
93 
94 int Fchmod(mode_t mode);
95 int Fstat(struct stat *);
96 int Fsync();
97 int Fsync(XrdSfsAio *aiop);
98 int Ftruncate(unsigned long long);
99 int getFD() {return fd;}
100 off_t getMmap(void **addr);
101 int isCompressed(char *cxidp=0);
102 ssize_t Read( off_t, size_t);
103 ssize_t Read( void *, off_t, size_t);
104 int Read(XrdSfsAio *aiop);
105 ssize_t ReadV(XrdOucIOVec *readV, int);
106 ssize_t ReadRaw( void *, off_t, size_t);
107 ssize_t Write(const void *, off_t, size_t);
108 int 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 
116 virtual ~XrdOssFile() {if (fd >= 0) Close();}
117 
118 private:
119 int Open_ufs(const char *, int, int, unsigned long long);
120 
121 static int AioFailure;
122 oocx_CXFile *cxobj;
125 const char *tident;
126 long long FSize;
127 int rawio;
128 int cxpgsz;
129 char cxid[4];
130 };
131 
132 /******************************************************************************/
133 /* o o s s _ S y s */
134 /******************************************************************************/
135 
136 class XrdFrcProxy;
137 class XrdOssCache_Group;
138 class XrdOssCache_Space;
139 class XrdOssCreateInfo;
140 class XrdOucMsubs;
141 class XrdOucName2Name;
142 class XrdOucProg;
143 class XrdOssSpace;
144 class XrdOssStage_Req;
145 
146 struct XrdVersionInfo;
147 
148 class XrdOssSys : public XrdOss
149 {
150 public:
151 virtual XrdOssDF *newDir(const char *tident)
152  {return (XrdOssDF *)new XrdOssDir(tident);}
153 virtual XrdOssDF *newFile(const char *tident)
154  {return (XrdOssDF *)new XrdOssFile(tident);}
155 
156 int Chmod(const char *, mode_t mode, XrdOucEnv *eP=0);
157 int Configure(const char *, XrdSysError &, XrdOucEnv *envP);
159 virtual
160 int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0);
161 int GenLocalPath(const char *, char *);
162 int GenRemotePath(const char *, char *);
163 int Init(XrdSysLogger *, const char *, XrdOucEnv *envP);
164 int Init(XrdSysLogger *lP, const char *cP) {return Init(lP, cP, 0);}
165 int IsRemote(const char *path)
166  {return (RPList.Find(path) & XRDEXP_REMOTE) != 0;}
167 int Lfn2Pfn(const char *Path, char *buff, int blen);
168 const char *Lfn2Pfn(const char *Path, char *buff, int blen, int &rc);
169 int Mkdir(const char *, mode_t mode, int mkpath=0, XrdOucEnv *eP=0);
170 int Mkpath(const char *, mode_t mode);
171 unsigned long long PathOpts(const char *path) {return RPList.Find(path);}
172 int Reloc(const char *tident, const char *path,
173  const char *cgName, const char *anchor=0);
174 int Remdir(const char *, int Opts=0, XrdOucEnv *eP=0); // In Unlink()
175 int Rename(const char *, const char *,
176  XrdOucEnv *eP1=0, XrdOucEnv *eP2=0);
177 virtual
178 int Stage(const char *, const char *, XrdOucEnv &, int, mode_t, unsigned long long );
179 void *Stage_In(void *carg);
180 int Stat(const char *, struct stat *, int opts=0, XrdOucEnv *Env=0);
181 int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *Env=0);
182 int StatFS(const char *path, unsigned long long &Opt,
183  long long &fSize, long long &fSpace);
184 int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen);
185 int StatPF(const char *, struct stat *);
186 int StatVS(XrdOssVSInfo *sP, const char *sname=0, int updt=0);
187 int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *Env=0);
188 int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *Env=0);
189 int Truncate(const char *, unsigned long long Size, XrdOucEnv *eP=0);
190 int Unlink(const char *, int Opts=0, XrdOucEnv *eP=0);
191 
192 int Stats(char *bp, int bl);
193 
194 static int AioInit();
195 static int AioAllOk;
196 
197 static int runOld; // Run in backward compatability mode
198 
199 static char tryMmap; // Memory mapped files enabled
200 static char chkMmap; // Memory mapped files are selective
201 
202 int MSS_Closedir(void *);
203 int MSS_Create(const char *path, mode_t, XrdOucEnv &);
204 void *MSS_Opendir(const char *, int &rc);
205 int MSS_Readdir(void *fd, char *buff, int blen);
206 int MSS_Remdir(const char *, const char *) {return -ENOTSUP;}
207 int MSS_Rename(const char *, const char *);
208 int MSS_Stat(const char *, struct stat *buff=0);
209 int MSS_Unlink(const char *);
210 
211 static const int MaxArgs = 15;
212 
213 char *ConfigFN; // -> Pointer to the config file name
214 char *LocalRoot; // -> Path prefix for local filename
215 char *RemoteRoot; // -> Path prefix for remote filename
216 int MaxTwiddle; // Maximum seconds of internal wait
217 int StageRealTime; // If 1, Invoke stage command on demand
218 int StageAsync; // If 1, return EINPROGRESS to the caller
219 int StageCreate; // If 1, use open path to create files
220 int StageFormat; // Format for default stagecmd
221 char *StageCmd; // -> Staging command to use
222 char *StageMsg; // -> Staging message to be passed
223 XrdOucMsubs *StageSnd; // -> Parsed Message
224 XrdFrcProxy *StageFrm; // -> Built-in stagecmd or zero
225 
226 char *StageEvents; // -> file:////<adminpath> if async staging
227 int StageEvSize; // Length of above
228 int StageActLen; // Length of below
229 char *StageAction; // -> "wq " if sync | "wfn " if async
230 
233 int StageAnum; // Count of valid Arg/Aln array elements
234 char *RSSCmd; // -> Remote Storage Service Command
235 int isMSSC; // RSSCmd is old-style msscmd
236 int RSSTout; // RSSCmd response timeout
237 long long MaxSize; // Maximum file size (*obsolete*)
238 int FDFence; // Smallest file FD number allowed
239 int FDLimit; // Largest file FD number allowed
240 unsigned long long DirFlags;// Default directory settings
241 int Trace; // Trace flags
242 int Solitary; // True if running in stand-alone mode
243 int OptFlags; // General option flags
244 
245 XrdOucPListAnchor SPList; // The path to space list
246 #define spAssign 1
247 
248 char *N2N_Lib; // -> Name2Name Library Path
249 char *N2N_Parms; // -> Name2Name Object Parameters
250 XrdOucName2Name *lcl_N2N; // -> File mapper for local files
251 XrdOucName2Name *rmt_N2N; // -> File mapper for remote files
252 XrdOucName2Name *the_N2N; // -> File mapper object
253 XrdOucPListAnchor RPList; // The real path list
254 OssDPath *DPList; // The stat path list
255 int lenDP;
256 short numDP;
257 short numCG;
258 
259 char *STT_Lib; // -> StatInfo Library Path
260 char *STT_Parms; // -> StatInfo Library Paramaters
261 union {
264  };
267 char STT_V2;
269 
270 long long prPBits; // Page lo order bit mask
271 long long prPMask; // Page hi order bit mask
272 int prPSize; // preread page size
273 int prBytes; // preread byte limit
274 int prActive; // preread activity count
275 short prDepth; // preread depth
276 short prQSize; // preread maximum allowed
277 
278 XrdVersionInfo *myVersion; // Compilation version set by constructor
279 
280  XrdOssSys();
281 virtual ~XrdOssSys() {}
282 
283 protected:
284 // Cache management related data and methods
285 //
286 long long minalloc; // Minimum allocation
287 int ovhalloc; // Allocation overage
288 int fuzalloc; // Allocation fuzz
289 int cscanint; // Seconds between cache scans
290 int xfrspeed; // Average transfer speed (bytes/second)
291 int xfrovhd; // Minimum seconds to get a file
292 int xfrhold; // Second hold limit on failing requests
293 int xfrkeep; // Second keep queued requests
294 int xfrthreads; // Number of threads for staging
295 int xfrtcount; // Actual count of threads (used for dtr)
296 long long pndbytes; // Total bytes to be staged (pending)
297 long long stgbytes; // Total bytes being staged (active)
298 long long totbytes; // Total bytes were staged (active+pending)
299 int totreqs; // Total successful requests
300 int badreqs; // Total unsuccessful requests
301 
302 XrdOucProg *StageProg; // Command or manager than handles staging
303 XrdOucProg *RSSProg; // Command for Remote Storage Services
304 
305 char *UDir; // -> Usage logdir
306 char *QFile; // -> Quota file
307 char *xfrFdir; // -> Fail file base dir
308 int xfrFdln; // strlen(xfrFDir)
309 
310 int Alloc_Cache(XrdOssCreateInfo &, XrdOucEnv &);
311 int Alloc_Local(XrdOssCreateInfo &, XrdOucEnv &);
312 int BreakLink(const char *local_path, struct stat &statbuff);
313 int CalcTime();
314 int CalcTime(XrdOssStage_Req *req);
315 int SetFattr(XrdOssCreateInfo &crInfo, int datfd, time_t mtime);
316 void doScrub();
317 int Find(XrdOssStage_Req *req, void *carg);
318 int getCname(const char *path, struct stat *sbuff, char *cgbuff);
319 int getStats(char *buff, int blen);
320 int GetFile(XrdOssStage_Req *req);
321 int getID(const char *, XrdOucEnv &, char *, int);
322 time_t HasFile(const char *fn, const char *sfx, time_t *mTime=0);
323 int Stage_QT(const char *, const char *, XrdOucEnv &, int, mode_t);
324 int Stage_RT(const char *, const char *, XrdOucEnv &, unsigned long long);
325 
326 // Configuration related methods
327 //
328 void ConfigMio(XrdSysError &Eroute);
329 int ConfigN2N(XrdSysError &Eroute, XrdOucEnv *envP);
330 int ConfigProc(XrdSysError &Eroute);
331 void ConfigSpace(XrdSysError &Eroute);
332 void ConfigSpace(const char *Lfn);
333 void ConfigSpath(XrdSysError &Eroute, const char *Pn,
334  unsigned long long &Fv, int noMSS);
335 int ConfigStage(XrdSysError &Eroute);
336 int ConfigStageC(XrdSysError &Eroute);
337 int ConfigStatLib(XrdSysError &Eroute, XrdOucEnv *envP);
338 void ConfigStats(XrdSysError &Eroute);
339 void ConfigStats(dev_t Devnum, char *lP);
340 int ConfigXeq(char *, XrdOucStream &, XrdSysError &);
341 void List_Path(const char *, const char *, unsigned long long, XrdSysError &);
342 int xalloc(XrdOucStream &Config, XrdSysError &Eroute);
343 int xcache(XrdOucStream &Config, XrdSysError &Eroute);
345 int xdefault(XrdOucStream &Config, XrdSysError &Eroute);
346 int xfdlimit(XrdOucStream &Config, XrdSysError &Eroute);
347 int xmaxsz(XrdOucStream &Config, XrdSysError &Eroute);
348 int xmemf(XrdOucStream &Config, XrdSysError &Eroute);
349 int xnml(XrdOucStream &Config, XrdSysError &Eroute);
350 int xpath(XrdOucStream &Config, XrdSysError &Eroute);
351 int xprerd(XrdOucStream &Config, XrdSysError &Eroute);
352 int xspace(XrdOucStream &Config, XrdSysError &Eroute, int *isCD=0);
353 int xspace(XrdOucStream &Config, XrdSysError &Eroute,
354  const char *grp, bool isAsgn);
355 int xspaceBuild(char *grp, char *fn, int isxa, XrdSysError &Eroute);
356 int xstg(XrdOucStream &Config, XrdSysError &Eroute);
357 int xstl(XrdOucStream &Config, XrdSysError &Eroute);
358 int xusage(XrdOucStream &Config, XrdSysError &Eroute);
359 int xtrace(XrdOucStream &Config, XrdSysError &Eroute);
360 int xxfr(XrdOucStream &Config, XrdSysError &Eroute);
361 
362 // Mass storage related methods
363 //
364 int tranmode(char *);
365 int MSS_Xeq(XrdOucStream **xfd, int okerr,
366  const char *cmd, const char *arg1=0, const char *arg2=0);
367 
368 // Other methods
369 //
370 int RenameLink(char *old_path, char *new_path);
371 int RenameLink2(int Llen, char *oLnk, char *old_path,
372  char *nLnk, char *new_path);
373 int 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
DIR * lclfd
Definition: XrdOssApi.hh:65
virtual ~XrdOssFile()
Definition: XrdOssApi.hh:116
static int runOld
Definition: XrdOssApi.hh:197
int MSS_Xeq(XrdOucStream **xfd, int okerr, const char *cmd, const char *arg1=0, const char *arg2=0)
ssize_t Write(const void *, off_t, size_t)
Definition: XrdOssApi.hh:84
XrdOssFile(const char *tid)
Definition: XrdOssApi.hh:111
void List_Path(const char *, const char *, unsigned long long, XrdSysError &)
Definition: XrdOssMioFile.hh:36
int xstl(XrdOucStream &Config, XrdSysError &Eroute)
int Fchmod(mode_t mode)
int Rename(const char *, const char *, XrdOucEnv *eP1=0, XrdOucEnv *eP2=0)
int ateof
Definition: XrdOssApi.hh:70
int cxpgsz
Definition: XrdOssApi.hh:128
int xfrthreads
Definition: XrdOssApi.hh:294
int OptFlags
Definition: XrdOssApi.hh:243
int Fstat(struct stat *)
Definition: XrdOssConfig.hh:48
char * StageCmd
Definition: XrdOssApi.hh:221
int StageAln[MaxArgs]
Definition: XrdOssApi.hh:232
int xfrkeep
Definition: XrdOssApi.hh:293
char * xfrFdir
Definition: XrdOssApi.hh:307
int Stage_QT(const char *, const char *, XrdOucEnv &, int, mode_t)
int StageFormat
Definition: XrdOssApi.hh:220
int Open_ufs(const char *, int, int, unsigned long long)
char * StageEvents
Definition: XrdOssApi.hh:226
int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *Env=0)
void * Stage_In(void *carg)
struct stat * Stat
Definition: XrdOssApi.hh:67
char STT_DoN2N
Definition: XrdOssApi.hh:266
XrdOucPListAnchor RPList
Definition: XrdOssApi.hh:253
int MaxTwiddle
Definition: XrdOssApi.hh:216
Definition: XrdOucMsubs.hh:90
short prQSize
Definition: XrdOssApi.hh:276
int xnml(XrdOucStream &Config, XrdSysError &Eroute)
int RenameLink3(char *cPath, char *old_path, char *new_path)
XrdOucName2Name * lcl_N2N
Definition: XrdOssApi.hh:250
int MSS_Rename(const char *, const char *)
Definition: XrdOucPList.hh:88
int xcachescan(XrdOucStream &Config, XrdSysError &Eroute)
int badreqs
Definition: XrdOssApi.hh:300
int GenLocalPath(const char *, char *)
void ConfigSpath(XrdSysError &Eroute, const char *Pn, unsigned long long &Fv, int noMSS)
short prDepth
Definition: XrdOssApi.hh:275
int ConfigStageC(XrdSysError &Eroute)
int RSSTout
Definition: XrdOssApi.hh:236
int Opendir(const char *, XrdOucEnv &)
int cscanint
Definition: XrdOssApi.hh:289
int xstg(XrdOucStream &Config, XrdSysError &Eroute)
~XrdOssDir()
Definition: XrdOssApi.hh:63
static int AioFailure
Definition: XrdOssApi.hh:121
Definition: XrdOucStream.hh:45
int Close(long long *retsz=0)
ssize_t Read(off_t, size_t)
char STT_V2
Definition: XrdOssApi.hh:267
char STT_DoARE
Definition: XrdOssApi.hh:268
XrdOssStatInfo_t STT_Func
Definition: XrdOssApi.hh:262
static int AioAllOk
Definition: XrdOssApi.hh:195
int Init(XrdSysLogger *lP, const char *cP)
Definition: XrdOssApi.hh:164
Definition: XrdOucName2Name.hh:48
int StatRet(struct stat *buff)
XrdOucProg * RSSProg
Definition: XrdOssApi.hh:303
int isopen
Definition: XrdOssApi.hh:71
int xxfr(XrdOucStream &Config, XrdSysError &Eroute)
ssize_t ReadRaw(void *, off_t, size_t)
int MSS_Closedir(void *)
int rawio
Definition: XrdOssApi.hh:127
int xfdlimit(XrdOucStream &Config, XrdSysError &Eroute)
const char * tident
Definition: XrdOssApi.hh:125
void * mssfd
Definition: XrdOssApi.hh:66
int Stats(char *bp, int bl)
int StatVS(XrdOssVSInfo *sP, const char *sname=0, int updt=0)
int prBytes
Definition: XrdOssApi.hh:273
int getStats(char *buff, int blen)
int Mkdir(const char *, mode_t mode, int mkpath=0, XrdOucEnv *eP=0)
int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
char * StageAction
Definition: XrdOssApi.hh:229
time_t HasFile(const char *fn, const char *sfx, time_t *mTime=0)
XrdOssMioFile * mmFile
Definition: XrdOssApi.hh:124
int fuzalloc
Definition: XrdOssApi.hh:288
int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen)
char * StageMsg
Definition: XrdOssApi.hh:222
void Config_Display(XrdSysError &)
int isCompressed(char *cxidp=0)
int xfrFdln
Definition: XrdOssApi.hh:308
Definition: XrdSysError.hh:89
XrdOucName2Name * the_N2N
Definition: XrdOssApi.hh:252
long long FSize
Definition: XrdOssApi.hh:126
int FDLimit
Definition: XrdOssApi.hh:239
Definition: XrdOss.hh:156
int Trace
Definition: XrdOssApi.hh:241
int RenameLink(char *old_path, char *new_path)
int MSS_Stat(const char *, struct stat *buff=0)
int xmemf(XrdOucStream &Config, XrdSysError &Eroute)
XrdCmsConfig Config
int Readdir(char *buff, int blen)
int StageActLen
Definition: XrdOssApi.hh:228
int getCname(const char *path, struct stat *sbuff, char *cgbuff)
int fd
Definition: XrdOss.hh:132
int xpath(XrdOucStream &Config, XrdSysError &Eroute)
int MSS_Remdir(const char *, const char *)
Definition: XrdOssApi.hh:206
int StageRealTime
Definition: XrdOssApi.hh:217
int getID(const char *, XrdOucEnv &, char *, int)
int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *Env=0)
unsigned long long DirFlags
Definition: XrdOssApi.hh:240
int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *Env=0)
void ConfigSpace(XrdSysError &Eroute)
char * ConfigFN
Definition: XrdOssApi.hh:213
OssDPath * DPList
Definition: XrdOssApi.hh:254
int MSS_Unlink(const char *)
int ConfigXeq(char *, XrdOucStream &, XrdSysError &)
int xmaxsz(XrdOucStream &Config, XrdSysError &Eroute)
int xusage(XrdOucStream &Config, XrdSysError &Eroute)
int STT_PreOp
Definition: XrdOssApi.hh:265
int xspaceBuild(char *grp, char *fn, int isxa, XrdSysError &Eroute)
virtual int Close(long long *retsz=0)
int Chmod(const char *, mode_t mode, XrdOucEnv *eP=0)
int BreakLink(const char *local_path, struct stat &statbuff)
Definition: XrdOucProg.hh:37
int GetFile(XrdOssStage_Req *req)
short numDP
Definition: XrdOssApi.hh:256
XrdOssDir(const char *tid)
Definition: XrdOssApi.hh:60
int totreqs
Definition: XrdOssApi.hh:299
off_t getMmap(void **addr)
int xfrhold
Definition: XrdOssApi.hh:292
Definition: XrdOssCache.hh:77
Definition: XrdOssSpace.hh:35
static int AioInit()
long long minalloc
Definition: XrdOssApi.hh:286
void ConfigMio(XrdSysError &Eroute)
long long stgbytes
Definition: XrdOssApi.hh:297
Definition: XrdOucEnv.hh:41
int Configure(const char *, XrdSysError &, XrdOucEnv *envP)
int xdefault(XrdOucStream &Config, XrdSysError &Eroute)
int xfrtcount
Definition: XrdOssApi.hh:295
Definition: XrdOucIOVec.hh:40
char * N2N_Parms
Definition: XrdOssApi.hh:249
int ConfigStatLib(XrdSysError &Eroute, XrdOucEnv *envP)
int StageAsync
Definition: XrdOssApi.hh:218
int StageCreate
Definition: XrdOssApi.hh:219
int Init(XrdSysLogger *, const char *, XrdOucEnv *envP)
long long pndbytes
Definition: XrdOssApi.hh:296
int lenDP
Definition: XrdOssApi.hh:255
int Alloc_Local(XrdOssCreateInfo &, XrdOucEnv &)
int MSS_Create(const char *path, mode_t, XrdOucEnv &)
int IsRemote(const char *path)
Definition: XrdOssApi.hh:165
int xprerd(XrdOucStream &Config, XrdSysError &Eroute)
unsigned long long Find(const char *pathname)
Definition: XrdOucPList.hh:112
ssize_t ReadV(XrdOucIOVec *readV, int)
int xcache(XrdOucStream &Config, XrdSysError &Eroute)
static const int MaxArgs
Definition: XrdOssApi.hh:211
virtual XrdOssDF * newDir(const char *tident)
Definition: XrdOssApi.hh:151
XrdVersionInfo * myVersion
Definition: XrdOssApi.hh:278
XrdOucPListAnchor SPList
Definition: XrdOssApi.hh:245
const char * tident
Definition: XrdOssApi.hh:68
int Find(XrdOssStage_Req *req, void *carg)
Definition: XrdOssApi.hh:51
char * N2N_Lib
Definition: XrdOssApi.hh:248
int Alloc_Cache(XrdOssCreateInfo &, XrdOucEnv &)
unsigned long long pflags
Definition: XrdOssApi.hh:69
int prActive
Definition: XrdOssApi.hh:274
int ConfigStage(XrdSysError &Eroute)
int FDFence
Definition: XrdOssApi.hh:238
int xfrspeed
Definition: XrdOssApi.hh:290
int isMSSC
Definition: XrdOssApi.hh:235
int CalcTime()
Definition: XrdOssCache.hh:164
int Ftruncate(unsigned long long)
int(* XrdOssStatInfo2_t)(const char *path, struct stat *buff, int opts, XrdOucEnv *envP, const char *lfn)
Definition: XrdOssStatInfo.hh:66
Definition: XrdSysLogger.hh:52
XrdOucProg * StageProg
Definition: XrdOssApi.hh:302
int prPSize
Definition: XrdOssApi.hh:272
XrdFrcProxy * StageFrm
Definition: XrdOssApi.hh:224
char * QFile
Definition: XrdOssApi.hh:306
Definition: XrdOssApi.hh:148
virtual XrdOssDF * newFile(const char *tident)
Definition: XrdOssApi.hh:153
#define stat(a, b)
Definition: XrdPosix.hh:96
int RenameLink2(int Llen, char *oLnk, char *old_path, char *nLnk, char *new_path)
int xfrovhd
Definition: XrdOssApi.hh:291
long long prPMask
Definition: XrdOssApi.hh:271
XrdOucMsubs * StageSnd
Definition: XrdOssApi.hh:223
#define XRDEXP_REMOTE
Definition: XrdOucExport.hh:84
long long totbytes
Definition: XrdOssApi.hh:298
XrdOssCache_FS * cacheP
Definition: XrdOssApi.hh:123
int Mkpath(const char *, mode_t mode)
int getFD()
Definition: XrdOssApi.hh:99
Definition: XrdOss.hh:173
XrdOssStatInfo2_t STT_Fund
Definition: XrdOssApi.hh:263
int StageAnum
Definition: XrdOssApi.hh:233
Definition: XrdOss.hh:59
int tranmode(char *)
virtual ~XrdOssSys()
Definition: XrdOssApi.hh:281
char * UDir
Definition: XrdOssApi.hh:305
void doScrub()
short numCG
Definition: XrdOssApi.hh:257
int Stage_RT(const char *, const char *, XrdOucEnv &, unsigned long long)
int ConfigProc(XrdSysError &Eroute)
long long prPBits
Definition: XrdOssApi.hh:270
int Stat(const char *, struct stat *, int opts=0, XrdOucEnv *Env=0)
char * RSSCmd
Definition: XrdOssApi.hh:234
static char tryMmap
Definition: XrdOssApi.hh:199
int Unlink(const char *, int Opts=0, XrdOucEnv *eP=0)
virtual int Stage(const char *, const char *, XrdOucEnv &, int, mode_t, unsigned long long)
int ovhalloc
Definition: XrdOssApi.hh:287
static char chkMmap
Definition: XrdOssApi.hh:200
Definition: XrdOssStage.hh:49
int(* XrdOssStatInfo_t)(const char *path, struct stat *buff, int opts, XrdOucEnv *envP)
Definition: XrdOssStatInfo.hh:63
char * RemoteRoot
Definition: XrdOssApi.hh:215
void * MSS_Opendir(const char *, int &rc)
XrdOucName2Name * rmt_N2N
Definition: XrdOssApi.hh:251
Definition: XrdOssCache.hh:128
virtual int Open(const char *, int, mode_t, XrdOucEnv &)
int StageEvSize
Definition: XrdOssApi.hh:227
Definition: XrdSfsAio.hh:57
char * STT_Parms
Definition: XrdOssApi.hh:260
char * STT_Lib
Definition: XrdOssApi.hh:259
char * StageArg[MaxArgs]
Definition: XrdOssApi.hh:231
int xspace(XrdOucStream &Config, XrdSysError &Eroute, int *isCD=0)
long long MaxSize
Definition: XrdOssApi.hh:237
int xtrace(XrdOucStream &Config, XrdSysError &Eroute)
void ConfigStats(XrdSysError &Eroute)
Definition: XrdFrcProxy.hh:39
int dirFD
Definition: XrdOssApi.hh:72
oocx_CXFile * cxobj
Definition: XrdOssApi.hh:122
int GenRemotePath(const char *, char *)
char * LocalRoot
Definition: XrdOssApi.hh:214
int Remdir(const char *, int Opts=0, XrdOucEnv *eP=0)
int ConfigN2N(XrdSysError &Eroute, XrdOucEnv *envP)
unsigned long long PathOpts(const char *path)
Definition: XrdOssApi.hh:171
int Solitary
Definition: XrdOssApi.hh:242
int Truncate(const char *, unsigned long long Size, XrdOucEnv *eP=0)
char cxid[4]
Definition: XrdOssApi.hh:129
int Lfn2Pfn(const char *Path, char *buff, int blen)
int StatPF(const char *, struct stat *)
int xalloc(XrdOucStream &Config, XrdSysError &Eroute)
int MSS_Readdir(void *fd, char *buff, int blen)
int SetFattr(XrdOssCreateInfo &crInfo, int datfd, time_t mtime)
virtual int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0)