xrootd
XrdOfs.hh
Go to the documentation of this file.
1 #ifndef __OFS_API_H__
2 #define __OFS_API_H__
3 /******************************************************************************/
4 /* */
5 /* X r d O f s . h h */
6 /* */
7 /* (c) 2004 by the Board of Trustees of the Leland Stanford, Jr., University */
8 /* Produced by Andrew Hanushevsky for Stanford University under contract */
9 /* DE-AC02-76-SFO0515 with the Department of Energy */
10 /* */
11 /* This file is part of the XRootD software suite. */
12 /* */
13 /* XRootD is free software: you can redistribute it and/or modify it under */
14 /* the terms of the GNU Lesser General Public License as published by the */
15 /* Free Software Foundation, either version 3 of the License, or (at your */
16 /* option) any later version. */
17 /* */
18 /* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19 /* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20 /* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21 /* License for more details. */
22 /* */
23 /* You should have received a copy of the GNU Lesser General Public License */
24 /* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25 /* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26 /* */
27 /* The copyright holder's institutional names and contributor's names may not */
28 /* be used to endorse or promote products derived from this software without */
29 /* specific prior written permission of the institution or contributor. */
30 /******************************************************************************/
31 
32 #include <string.h>
33 #include <dirent.h>
34 #include <sys/types.h>
35 
36 #include "XrdOfs/XrdOfsEvr.hh"
37 #include "XrdOfs/XrdOfsHandle.hh"
38 #include "XrdSys/XrdSysPthread.hh"
40 #include "XrdCms/XrdCmsClient.hh"
41 
42 class XrdNetIF;
43 class XrdOfsEvs;
44 class XrdOfsPocq;
45 class XrdOfsPrepare;
46 class XrdOss;
47 class XrdOssDF;
48 class XrdOssDir;
49 class XrdOucEnv;
50 class XrdOucPListAnchor;
51 class XrdSysError;
52 class XrdSysLogger;
53 class XrdOucStream;
54 class XrdSfsAio;
55 
56 struct XrdVersionInfo;
57 
58 /******************************************************************************/
59 /* X r d O f s D i r e c t o r y */
60 /******************************************************************************/
61 
63 {
64 public:
65 
66  int open(const char *dirName,
67  const XrdSecEntity *client,
68  const char *opaque = 0);
69 
70  const char *nextEntry();
71 
72  int close();
73 
74 inline void copyError(XrdOucErrInfo &einfo) {einfo = error;}
75 
76 const char *FName() {return (const char *)fname;}
77 
78  int autoStat(struct stat *buf);
79 
80  XrdOfsDirectory(XrdOucErrInfo &eInfo, const char *user)
81  : XrdSfsDirectory(eInfo), tident(user ? user : ""),
82  fname(0), dp(0), atEOF(0) {}
83 
84 virtual ~XrdOfsDirectory() {if (dp) close();}
85 
86 protected:
87 const char *tident;
88 char *fname;
90 int atEOF;
91 char dname[MAXNAMLEN];
92 };
93 
95 {
96 public:
97  XrdOfsDirFull(const char *user, int MonID)
98  : XrdOfsDirectory(myEInfo, user), myEInfo(user, MonID)
99  {}
100 
101 virtual ~XrdOfsDirFull() {}
102 
103 private:
104 XrdOucErrInfo myEInfo; // Accessible only by reference error
105 };
106 
107 /******************************************************************************/
108 /* X r d O f s F i l e */
109 /******************************************************************************/
110 
111 class XrdOfsTPC;
112 class XrdOucChkPnt;
113 
114 class XrdOfsFile : public XrdSfsFile
115 {
116 public:
117 
118  int open(const char *fileName,
119  XrdSfsFileOpenMode openMode,
120  mode_t createMode,
121  const XrdSecEntity *client,
122  const char *opaque = 0);
123 
125  struct iov *range=0, int n=0);
126 
127  int close();
128 
129  using XrdSfsFile::fctl;
130 
131  int fctl(const int cmd,
132  const char *args,
133  XrdOucErrInfo &out_error);
134 
135  int fctl(const int cmd,
136  int alen,
137  const char *args,
138  const XrdSecEntity *client = 0);
139 
140  const char *FName() {return (oh ? oh->Name() : "?");}
141 
142  int getMmap(void **Addr, off_t &Size);
143 
144  int read(XrdSfsFileOffset fileOffset, // Preread only
145  XrdSfsXferSize amount);
146 
148  char *buffer,
149  XrdSfsXferSize buffer_size);
150 
152  int readCount);
153 
154  int read(XrdSfsAio *aioparm);
155 
157  const char *buffer,
158  XrdSfsXferSize buffer_size);
159 
160  int write(XrdSfsAio *aioparm);
161 
162  int sync();
163 
164  int sync(XrdSfsAio *aiop);
165 
166  int stat(struct stat *buf);
167 
168  int truncate(XrdSfsFileOffset fileOffset);
169 
170  int getCXinfo(char cxtype[4], int &cxrsz);
171 
172  XrdOfsFile(XrdOucErrInfo &eInfo, const char *user);
173 
174  ~XrdOfsFile() {viaDel = 1; if (oh) close();}
175 
176 protected:
177 
178 const char *tident;
183 char viaDel;
184 bool ckpBad;
185 
186 private:
187 
188 void GenFWEvent();
189 int CreateCKP();
190 };
191 
193 {
194 public:
195  XrdOfsFileFull(const char *user, int MonID)
196  : XrdOfsFile(myEInfo, user), myEInfo(user, MonID)
197  {}
198 
199 virtual ~XrdOfsFileFull() {}
200 
201 private:
202 XrdOucErrInfo myEInfo; // Accessible only by reference error
203 };
204 
205 /******************************************************************************/
206 /* C l a s s X r d O f s */
207 /******************************************************************************/
208 
209 class XrdAccAuthorize;
210 class XrdCks;
211 class XrdCmsClient;
212 class XrdOfsConfigPI;
213 class XrdOfsFSctl_PI;
214 class XrdOfsPoscq;
215 class XrdSfsFACtl;
216 
217 class XrdOfs : public XrdSfsFileSystem
218 {
219 friend class XrdOfsDirectory;
220 friend class XrdOfsFile;
221 
222 public:
223 
224 // Object allocation
225 //
226  XrdSfsDirectory *newDir(char *user=0, int MonID=0)
227  {return new XrdOfsDirFull(user, MonID);}
228 
230  {return new XrdOfsDirectory(eInfo, eInfo.getErrUser());}
231 
232  XrdSfsFile *newFile(char *user=0,int MonID=0)
233  {return new XrdOfsFileFull(user, MonID);}
234 
236  {return new XrdOfsFile(eInfo, eInfo.getErrUser());}
237 
238 // Other functions
239 //
240  int chksum( csFunc Func,
241  const char *csName,
242  const char *Path,
243  XrdOucErrInfo &out_error,
244  const XrdSecEntity *client = 0,
245  const char *opaque = 0);
246 
247  int chmod(const char *Name,
248  XrdSfsMode Mode,
249  XrdOucErrInfo &out_error,
250  const XrdSecEntity *client,
251  const char *opaque = 0);
252 
253  void Connect(const XrdSecEntity *client = 0);
254 
255  void Disc(const XrdSecEntity *client = 0);
256 
257  int exists(const char *fileName,
258  XrdSfsFileExistence &exists_flag,
259  XrdOucErrInfo &out_error,
260  const XrdSecEntity *client,
261  const char *opaque = 0);
262 
263  int FAttr( XrdSfsFACtl *faReq,
264  XrdOucErrInfo &eInfo,
265  const XrdSecEntity *client = 0);
266 
267  int FSctl(const int cmd,
268  XrdSfsFSctl &args,
269  XrdOucErrInfo &eInfo,
270  const XrdSecEntity *client = 0);
271 
272  int fsctl(const int cmd,
273  const char *args,
274  XrdOucErrInfo &out_error,
275  const XrdSecEntity *client = 0);
276 
277  int getStats(char *buff, int blen);
278 
279 const char *getVersion();
280 
281  int mkdir(const char *dirName,
282  XrdSfsMode Mode,
283  XrdOucErrInfo &out_error,
284  const XrdSecEntity *client,
285  const char *opaque = 0);
286 
287  int prepare( XrdSfsPrep &pargs,
288  XrdOucErrInfo &out_error,
289  const XrdSecEntity *client = 0);
290 
291  int rem(const char *path,
292  XrdOucErrInfo &out_error,
293  const XrdSecEntity *client,
294  const char *info = 0)
295  {return remove('f', path, out_error, client, info);}
296 
297  int remdir(const char *dirName,
298  XrdOucErrInfo &out_error,
299  const XrdSecEntity *client,
300  const char *info = 0)
301  {return remove('d',dirName,out_error,client,info);}
302 
303  int rename(const char *oldFileName,
304  const char *newFileName,
305  XrdOucErrInfo &out_error,
306  const XrdSecEntity *client,
307  const char *infoO = 0,
308  const char *infoN = 0);
309 
310  int stat(const char *Name,
311  struct stat *buf,
312  XrdOucErrInfo &out_error,
313  const XrdSecEntity *client,
314  const char *opaque = 0);
315 
316  int stat(const char *Name,
317  mode_t &mode,
318  XrdOucErrInfo &out_error,
319  const XrdSecEntity *client,
320  const char *opaque = 0);
321 
322  int truncate(const char *Name,
323  XrdSfsFileOffset fileOffset,
324  XrdOucErrInfo &out_error,
325  const XrdSecEntity *client = 0,
326  const char *opaque = 0);
327 // Management functions
328 //
329 virtual int Configure(XrdSysError &); // Backward Compatability
330 
331 virtual int Configure(XrdSysError &, XrdOucEnv *);
332 
334 
336 
338 virtual ~XrdOfs() {} // Too complicate to delete :-)
339 
340 /******************************************************************************/
341 /* C o n f i g u r a t i o n V a l u e s */
342 /******************************************************************************/
343 
344 // Configuration values for this filesystem
345 //
346 enum {Authorize = 0x0001, // Authorization wanted
347  XAttrPlug = 0x0002, // Extended Attribute Plugin
348  isPeer = 0x0050, // Role peer
349  isProxy = 0x0020, // Role proxy
350  isManager = 0x0040, // Role manager
351  isServer = 0x0080, // Role server
352  isSuper = 0x00C0, // Role supervisor
353  isMeta = 0x0100, // Role meta + above
354  haveRole = 0x01F0, // A role is present
355  Forwarding= 0x1000, // Fowarding wanted
356  ThirdPC = 0x2000, // This party copy wanted
357  SubCluster= 0x4000, // all.subcluster directive encountered
358  RdrTPC = 0x8000
359  }; // These are set in Options below
360 
361 int Options; // Various options
362 int myPort; // Port number being used
363 
364 // TPC related things
365 //
366 char *tpcRdrHost[2]; // TPC redirect target or null if none
367 int tpcRdrPort[2]; // TPC redirect target port number
368 
369 // Networking
370 //
372 
373 // Forward options
374 //
375 struct fwdOpt
376  {const char *Cmd;
377  char *Host;
378  int Port;
379  void Reset() {Cmd = 0; Port = 0;
380  if (Host) {free(Host); Host = 0;}
381  }
382  fwdOpt() : Cmd(0), Host(0), Port(0) {}
383  ~fwdOpt() {}
384  };
385 
386 struct fwdOpt fwdCHMOD;
387 struct fwdOpt fwdMKDIR;
388 struct fwdOpt fwdMKPATH;
389 struct fwdOpt fwdMV;
390 struct fwdOpt fwdRM;
391 struct fwdOpt fwdRMDIR;
392 struct fwdOpt fwdTRUNC;
393 
394 static int MaxDelay; // Max delay imposed during staging
395 static int OSSDelay; // Delay to impose when oss interface times out
396 
397 char *ConfigFN; // ->Configuration filename
398 
399 /******************************************************************************/
400 /* P r o t e c t e d I t e m s */
401 /******************************************************************************/
402 
403 protected:
404 
405 XrdOfsEvr evrObject; // Event receiver
406 XrdCmsClient *Finder; // ->Cluster Management Service
407 
408 virtual int ConfigXeq(char *var, XrdOucStream &, XrdSysError &);
409 static int Emsg(const char *, XrdOucErrInfo &, int, const char *x,
410  XrdOfsHandle *hP);
411 static int Emsg(const char *, XrdOucErrInfo &, int, const char *x,
412  const char *y="");
413 static int fsError(XrdOucErrInfo &myError, int rc);
414 const char *Split(const char *Args, const char **Opq, char *Path, int Plen);
415  int Stall(XrdOucErrInfo &, int, const char *);
416  void Unpersist(XrdOfsHandle *hP, int xcev=1);
417  char *WaitTime(int, char *, int);
418 
419 /******************************************************************************/
420 /* P r i v a t e C o n f i g u r a t i o n */
421 /******************************************************************************/
422 
423 private:
424 
425 char *myRole;
426 XrdOfsFSctl_PI *FSctl_PI; // ->FSctl plugin
427 XrdAccAuthorize *Authorization; // ->Authorization Service
428 XrdCmsClient *Balancer; // ->Cluster Local Interface
429 XrdOfsEvs *evsObject; // ->Event Notifier
430 XrdOucPListAnchor*ossRPList; // ->Oss exoprt list
431 
432 XrdOfsPoscq *poscQ; // -> poscQ if persist on close enabled
433 char *poscLog; // -> Directory for posc recovery log
434 int poscHold; // Seconds to hold a forced close
435 short poscSync; // Number of requests before sync
436 signed char poscAuto; // 1 -> Automatic persist on close
437 
438 char ossRW; // The oss r/w capability
439 
440 XrdOfsConfigPI *ofsConfig; // Plugin configurator
441 XrdOfsPrepare *prepHandler; // Plugin prepare
442 XrdCks *Cks; // Checksum manager
443 bool CksPfn; // Checksum needs a pfn
444 bool CksRdr; // Checksum may be redirected (i.e. not local)
445 bool prepAuth; // Prepare requires authorization
446 char OssIsProxy; // !0 if we detect the oss plugin is a proxy
447 char myRType[4]; // Role type for consistency with the cms
448 
449 uint64_t ossFeatures; // The oss features
450 
451 int usxMaxNsz; // Maximum length of attribute name
452 int usxMaxVsz; // Maximum length of attribute value
453 
455 XrdSysMutex ocMutex; // Global mutex for open/close
456 
457 bool DirRdr; // Opendir() can be redirected.
458 
459 /******************************************************************************/
460 /* O t h e r D a t a */
461 /******************************************************************************/
462 
463 // Internal file attribute methods
464 //
465 int ctlFADel(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo);
466 int ctlFAGet(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo);
467 int ctlFALst(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo);
468 int ctlFASet(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo);
469 
470 // Common functions
471 //
472 int remove(const char type, const char *path, XrdOucErrInfo &out_error,
473  const XrdSecEntity *client, const char *opaque);
474 
475 // Function used during Configuration
476 //
477 int ConfigDispFwd(char *buff, struct fwdOpt &Fwd);
478 int ConfigPosc(XrdSysError &Eroute);
480 int ConfigTPC(XrdSysError &Eroute);
481 char *ConfigTPCDir(XrdSysError &Eroute, const char *xPath);
482 const char *Fname(const char *);
483 int Forward(int &Result, XrdOucErrInfo &Resp, struct fwdOpt &Fwd,
484  const char *arg1=0, const char *arg2=0,
485  XrdOucEnv *Env1=0, XrdOucEnv *Env2=0);
486 int FSctl(XrdOfsFile &file, int cmd, int alen, const char *args,
487  const XrdSecEntity *client);
489 const char *theRole(int opts);
492 int xexp(XrdOucStream &, XrdSysError &, bool);
504 };
505 #endif
XrdOss
Definition: XrdOss.hh:499
XrdOfsFile::GenFWEvent
void GenFWEvent()
XrdOfs::fwdOpt::Port
int Port
Definition: XrdOfs.hh:378
XrdOfsDirectory::dp
XrdOssDF * dp
Definition: XrdOfs.hh:89
XrdSfsInterface.hh
XrdOfs::CksRdr
bool CksRdr
Definition: XrdOfs.hh:444
XrdOfsFile::viaDel
char viaDel
Definition: XrdOfs.hh:183
XrdOfs::mkdir
int mkdir(const char *dirName, XrdSfsMode Mode, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
XrdOfs::evrObject
XrdOfsEvr evrObject
Definition: XrdOfs.hh:405
XrdOfs::fwdMV
struct fwdOpt fwdMV
Definition: XrdOfs.hh:389
XrdOfs::Forwarding
@ Forwarding
Definition: XrdOfs.hh:355
XrdOfs::isManager
@ isManager
Definition: XrdOfs.hh:350
XrdOfsFile::sync
int sync()
XrdOfsFile::stat
int stat(struct stat *buf)
XrdOfsDirFull::XrdOfsDirFull
XrdOfsDirFull(const char *user, int MonID)
Definition: XrdOfs.hh:97
XrdOucChkPnt
Definition: XrdOucChkPnt.hh:41
XrdOfs::isProxy
@ isProxy
Definition: XrdOfs.hh:349
XrdOfs::getStats
int getStats(char *buff, int blen)
XrdOfs::Cks
XrdCks * Cks
Definition: XrdOfs.hh:442
XrdOfsFile::ckpBad
bool ckpBad
Definition: XrdOfs.hh:184
XrdOfsConfigPI
Definition: XrdOfsConfigPI.hh:61
XrdSysMutex
Definition: XrdSysPthread.hh:166
XrdOfsHandle.hh
XrdOfsFile::read
XrdSfsXferSize read(XrdSfsFileOffset fileOffset, char *buffer, XrdSfsXferSize buffer_size)
XrdOfs::fwdOpt::fwdOpt
fwdOpt()
Definition: XrdOfs.hh:382
XrdOfs::ConfigDispFwd
int ConfigDispFwd(char *buff, struct fwdOpt &Fwd)
XrdOfsFile::write
XrdSfsXferSize write(XrdSfsFileOffset fileOffset, const char *buffer, XrdSfsXferSize buffer_size)
XrdOfsFileFull::myEInfo
XrdOucErrInfo myEInfo
Definition: XrdOfs.hh:202
XrdOfs::fwdOpt::~fwdOpt
~fwdOpt()
Definition: XrdOfs.hh:383
XrdSysPthread.hh
XrdOfs::haveRole
@ haveRole
Definition: XrdOfs.hh:354
XrdOfs::Configure
virtual int Configure(XrdSysError &, XrdOucEnv *)
XrdOfs::XrdOfsDirectory
friend class XrdOfsDirectory
Definition: XrdOfs.hh:219
XrdSfsFileSystem
Definition: XrdSfsInterface.hh:835
XrdOfs::chmod
int chmod(const char *Name, XrdSfsMode Mode, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
XrdOfs::xnmsg
int xnmsg(XrdOucStream &, XrdSysError &)
XrdOfs::tpcRdrHost
char * tpcRdrHost[2]
Definition: XrdOfs.hh:366
XrdOfsEvs
Definition: XrdOfsEvs.hh:121
XrdOfsFile::checkpoint
int checkpoint(XrdSfsFile::cpAct act, struct iov *range=0, int n=0)
XrdOfsFile::getCXinfo
int getCXinfo(char cxtype[4], int &cxrsz)
XrdOfs::poscSync
short poscSync
Definition: XrdOfs.hh:435
XrdOfsFile
Definition: XrdOfs.hh:115
XrdOfsDirectory::tident
const char * tident
Definition: XrdOfs.hh:87
XrdOfsFileFull::~XrdOfsFileFull
virtual ~XrdOfsFileFull()
Definition: XrdOfs.hh:199
XrdSfsFileSystem::csFunc
csFunc
Definition: XrdSfsInterface.hh:917
XrdOfsFile::CreateCKP
int CreateCKP()
XrdOfsFile::read
int read(XrdSfsFileOffset fileOffset, XrdSfsXferSize amount)
XrdOfs::xdirl
int xdirl(XrdOucStream &, XrdSysError &)
XrdOfsEvr
Definition: XrdOfsEvr.hh:43
XrdOfs::xtrace
int xtrace(XrdOucStream &, XrdSysError &)
XrdOfsFile::dorawio
int dorawio
Definition: XrdOfs.hh:182
XrdOfsFile::readv
XrdSfsXferSize readv(XrdOucIOVec *readV, int readCount)
XrdOfsDirectory::XrdOfsDirectory
XrdOfsDirectory(XrdOucErrInfo &eInfo, const char *user)
Definition: XrdOfs.hh:80
XrdOfs::stat
int stat(const char *Name, struct stat *buf, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
XrdCmsClient
Definition: XrdCmsClient.hh:116
XrdOfsFile::read
int read(XrdSfsAio *aioparm)
XrdOfs::fwdOpt::Host
char * Host
Definition: XrdOfs.hh:377
XrdOfs::WaitTime
char * WaitTime(int, char *, int)
XrdOfs::Reformat
int Reformat(XrdOucErrInfo &)
XrdOfsFile::sync
int sync(XrdSfsAio *aiop)
XrdOfs::Config_Cluster
void Config_Cluster(XrdOss *)
XrdSfsXferSize
int XrdSfsXferSize
Definition: XrdSfsInterface.hh:129
XrdOssDF
Definition: XrdOss.hh:63
XrdOfs::stat
int stat(const char *Name, mode_t &mode, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
XrdOfs::ocMutex
XrdSysMutex ocMutex
Definition: XrdOfs.hh:455
XrdOucPListAnchor
Definition: XrdOucPList.hh:89
XrdSfsFileExistence
XrdSfsFileExistence
Definition: XrdSfsInterface.hh:132
XrdOfsDirFull::~XrdOfsDirFull
virtual ~XrdOfsDirFull()
Definition: XrdOfs.hh:101
XrdOfs::Disc
void Disc(const XrdSecEntity *client=0)
XrdOfs::OSSDelay
static int OSSDelay
Definition: XrdOfs.hh:395
XrdOfs::evsObject
XrdOfsEvs * evsObject
Definition: XrdOfs.hh:429
XrdOfs::DirRdr
bool DirRdr
Definition: XrdOfs.hh:457
XrdOfs::fwdOpt::Reset
void Reset()
Definition: XrdOfs.hh:379
XrdOfs::ThirdPC
@ ThirdPC
Definition: XrdOfs.hh:356
XrdOfsFile::myTPC
XrdOfsTPC * myTPC
Definition: XrdOfs.hh:180
XrdOfs::xmaxd
int xmaxd(XrdOucStream &, XrdSysError &)
XrdOfsFile::XrdOfsFile
XrdOfsFile(XrdOucErrInfo &eInfo, const char *user)
XrdOfs::ConfigTPC
int ConfigTPC(XrdSysError &Eroute)
XrdOfsFileFull::XrdOfsFileFull
XrdOfsFileFull(const char *user, int MonID)
Definition: XrdOfs.hh:195
XrdSfsFile
Definition: XrdSfsInterface.hh:365
XrdOfs::Split
const char * Split(const char *Args, const char **Opq, char *Path, int Plen)
XrdSfsFileOffset
long long XrdSfsFileOffset
Definition: XrdSfsInterface.hh:126
XrdOfs::MaxDelay
static int MaxDelay
Definition: XrdOfs.hh:394
XrdOfs::myRType
char myRType[4]
Definition: XrdOfs.hh:447
XrdOfs::XAttrPlug
@ XAttrPlug
Definition: XrdOfs.hh:347
XrdOucIOVec
Definition: XrdOucIOVec.hh:41
XrdOfs::fwdOpt::Cmd
const char * Cmd
Definition: XrdOfs.hh:376
XrdOucStream
Definition: XrdOucStream.hh:47
XrdOfs::fwdMKDIR
struct fwdOpt fwdMKDIR
Definition: XrdOfs.hh:387
XrdOfs::fwdCHMOD
struct fwdOpt fwdCHMOD
Definition: XrdOfs.hh:386
XrdOfs::Options
int Options
Definition: XrdOfs.hh:361
XrdOfs::ConfigTPCDir
char * ConfigTPCDir(XrdSysError &Eroute, const char *xPath)
XrdOfs::usxMaxVsz
int usxMaxVsz
Definition: XrdOfs.hh:452
XrdOfsFile::myCKP
XrdOucChkPnt * myCKP
Definition: XrdOfs.hh:181
XrdOfs::newDir
XrdSfsDirectory * newDir(XrdOucErrInfo &eInfo)
Definition: XrdOfs.hh:229
XrdOfs::exists
int exists(const char *fileName, XrdSfsFileExistence &exists_flag, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
XrdOfsDirectory::autoStat
int autoStat(struct stat *buf)
XrdOfsEvr.hh
XrdOfs::ctlFAGet
int ctlFAGet(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo)
XrdCks
Definition: XrdCks.hh:92
XrdOfs::chksum
int chksum(csFunc Func, const char *csName, const char *Path, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)
XrdOfs::theRole
const char * theRole(int opts)
XrdOfs::ofsConfig
XrdOfsConfigPI * ofsConfig
Definition: XrdOfs.hh:440
XrdOfsHandle
Definition: XrdOfsHandle.hh:126
XrdOfsFile::open
int open(const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client, const char *opaque=0)
XrdOfs::Forward
int Forward(int &Result, XrdOucErrInfo &Resp, struct fwdOpt &Fwd, const char *arg1=0, const char *arg2=0, XrdOucEnv *Env1=0, XrdOucEnv *Env2=0)
XrdOfs::dummyHandle
static XrdOfsHandle * dummyHandle
Definition: XrdOfs.hh:454
XrdOfs::FSctl
int FSctl(XrdOfsFile &file, int cmd, int alen, const char *args, const XrdSecEntity *client)
XrdOfs::myRole
char * myRole
Definition: XrdOfs.hh:425
XrdOfsTPC
Definition: XrdOfsTPC.hh:48
XrdOfs::xpers
int xpers(XrdOucStream &, XrdSysError &)
XrdOfsPoscq
Definition: XrdOfsPoscq.hh:39
XrdOfs::isServer
@ isServer
Definition: XrdOfs.hh:351
XrdOfs::ConfigPosc
int ConfigPosc(XrdSysError &Eroute)
XrdOfs::xtpcr
int xtpcr(XrdOucStream &, XrdSysError &)
XrdOfsFile::fctl
int fctl(const int cmd, const char *args, XrdOucErrInfo &out_error)
XrdOfs::poscQ
XrdOfsPoscq * poscQ
Definition: XrdOfs.hh:432
XrdCmsClient.hh
XrdSfsDirectory
Definition: XrdSfsInterface.hh:239
XrdAccAuthorize
Definition: XrdAccAuthorize.hh:66
XrdOfsFile::~XrdOfsFile
~XrdOfsFile()
Definition: XrdOfs.hh:174
XrdOfs::FAttr
int FAttr(XrdSfsFACtl *faReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
XrdOfs::fsError
static int fsError(XrdOucErrInfo &myError, int rc)
XrdOfs::RdrTPC
@ RdrTPC
Definition: XrdOfs.hh:358
XrdOfsFile::FName
const char * FName()
Definition: XrdOfs.hh:140
XrdOfs::fwdMKPATH
struct fwdOpt fwdMKPATH
Definition: XrdOfs.hh:388
XrdOfsFileFull
Definition: XrdOfs.hh:193
XrdOucEnv
Definition: XrdOucEnv.hh:42
XrdOfs::xexp
int xexp(XrdOucStream &, XrdSysError &, bool)
XrdOfs::newFile
XrdSfsFile * newFile(char *user=0, int MonID=0)
Definition: XrdOfs.hh:232
XrdOfs::poscAuto
signed char poscAuto
Definition: XrdOfs.hh:436
XrdOfs::newFile
XrdSfsFile * newFile(XrdOucErrInfo &eInfo)
Definition: XrdOfs.hh:235
XrdOfsDirectory::FName
const char * FName()
Definition: XrdOfs.hh:76
XrdOfs::tpcRdrPort
int tpcRdrPort[2]
Definition: XrdOfs.hh:367
XrdOfs::truncate
int truncate(const char *Name, XrdSfsFileOffset fileOffset, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)
XrdOfsFSctl_PI
Definition: XrdOfsFSctl_PI.hh:52
XrdOfsDirectory::fname
char * fname
Definition: XrdOfs.hh:88
XrdOfsDirectory::open
int open(const char *dirName, const XrdSecEntity *client, const char *opaque=0)
XrdOfs::ConfigRedir
int ConfigRedir(XrdSysError &Eroute, XrdOucEnv *EnvInfo)
XrdOfsFile::close
int close()
XrdOssDir
Definition: XrdOssApi.hh:52
XrdOfs::myPort
int myPort
Definition: XrdOfs.hh:362
XrdSysLogger
Definition: XrdSysLogger.hh:53
XrdOfs::prepAuth
bool prepAuth
Definition: XrdOfs.hh:445
XrdOfsFile::tident
const char * tident
Definition: XrdOfs.hh:178
XrdOfsHandle::Name
const char * Name()
Definition: XrdOfsHandle.hh:148
XrdSfsFile::fctl
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
iov
Definition: XrdOucIOVec.hh:65
XrdSfsMode
int XrdSfsMode
Definition: XrdSfsInterface.hh:128
XrdOfs::xtpc
int xtpc(XrdOucStream &, XrdSysError &)
XrdOfsDirectory::nextEntry
const char * nextEntry()
XrdOfs::isPeer
@ isPeer
Definition: XrdOfs.hh:348
XrdOfs::ctlFASet
int ctlFASet(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo)
XrdOfs::rem
int rem(const char *path, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *info=0)
Definition: XrdOfs.hh:291
XrdOfs::Config_Display
void Config_Display(XrdSysError &)
XrdOfs::Authorize
@ Authorize
Definition: XrdOfs.hh:346
XrdOfs::xnot
int xnot(XrdOucStream &, XrdSysError &)
XrdOfsFile::oh
XrdOfsHandle * oh
Definition: XrdOfs.hh:179
XrdOfs::XrdOfsFile
friend class XrdOfsFile
Definition: XrdOfs.hh:220
XrdOfsFile::write
int write(XrdSfsAio *aioparm)
XrdOfs::myIF
XrdNetIF * myIF
Definition: XrdOfs.hh:371
XrdOfs::XrdOfs
XrdOfs()
XrdOfs::ossRW
char ossRW
Definition: XrdOfs.hh:438
XrdOfsFile::truncate
int truncate(XrdSfsFileOffset fileOffset)
XrdOfs::usxMaxNsz
int usxMaxNsz
Definition: XrdOfs.hh:451
XrdSfsFACtl
Definition: XrdSfsFAttr.hh:73
XrdOfs::Authorization
XrdAccAuthorize * Authorization
Definition: XrdOfs.hh:427
XrdOfs::fwdOpt
Definition: XrdOfs.hh:376
XrdOfsFile::fctl
int fctl(const int cmd, int alen, const char *args, const XrdSecEntity *client=0)
XrdOfs::poscLog
char * poscLog
Definition: XrdOfs.hh:433
XrdOfs::prepHandler
XrdOfsPrepare * prepHandler
Definition: XrdOfs.hh:441
XrdSfsFile::cpAct
cpAct
Definition: XrdSfsInterface.hh:428
XrdOfs::xcrds
int xcrds(XrdOucStream &, XrdSysError &)
XrdOfs::rename
int rename(const char *oldFileName, const char *newFileName, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *infoO=0, const char *infoN=0)
XrdOfs::newDir
XrdSfsDirectory * newDir(char *user=0, int MonID=0)
Definition: XrdOfs.hh:226
XrdSfsPrep
< Prepare parameters
Definition: XrdSfsInterface.hh:168
XrdOfs::Emsg
static int Emsg(const char *, XrdOucErrInfo &, int, const char *x, const char *y="")
XrdOfs::OssIsProxy
char OssIsProxy
Definition: XrdOfs.hh:446
XrdOfs::fwdRMDIR
struct fwdOpt fwdRMDIR
Definition: XrdOfs.hh:391
XrdOfs::remdir
int remdir(const char *dirName, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *info=0)
Definition: XrdOfs.hh:297
XrdOfs::getVersion
const char * getVersion()
XrdOfs::Balancer
XrdCmsClient * Balancer
Definition: XrdOfs.hh:428
XrdOfsDirectory::dname
char dname[MAXNAMLEN]
Definition: XrdOfs.hh:91
XrdOfsFile::getMmap
int getMmap(void **Addr, off_t &Size)
XrdOfs::ossFeatures
uint64_t ossFeatures
Definition: XrdOfs.hh:449
XrdSfsFileOpenMode
int XrdSfsFileOpenMode
Definition: XrdSfsInterface.hh:127
XrdOfs::Emsg
static int Emsg(const char *, XrdOucErrInfo &, int, const char *x, XrdOfsHandle *hP)
XrdOfs::ctlFADel
int ctlFADel(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo)
XrdSecEntity
Definition: XrdSecEntity.hh:64
XrdSfsAio
Definition: XrdSfsAio.hh:59
XrdSfsFSctl
< SFS_FSCTL_PLUGIN/PLUGIO parms
Definition: XrdSfsInterface.hh:160
XrdOucErrInfo
Definition: XrdOucErrInfo.hh:99
XrdOfs::~XrdOfs
virtual ~XrdOfs()
Definition: XrdOfs.hh:338
XrdOfs::Connect
void Connect(const XrdSecEntity *client=0)
stat
#define stat(a, b)
Definition: XrdPosix.hh:96
XrdOfsDirectory::copyError
void copyError(XrdOucErrInfo &einfo)
Definition: XrdOfs.hh:74
XrdNetIF
Definition: XrdNetIF.hh:49
XrdOfs::isSuper
@ isSuper
Definition: XrdOfs.hh:352
XrdOucErrInfo::getErrUser
const char * getErrUser()
Definition: XrdOucErrInfo.hh:295
XrdOfs::xforward
int xforward(XrdOucStream &, XrdSysError &)
XrdOfsDirectory::atEOF
int atEOF
Definition: XrdOfs.hh:90
XrdOfsDirectory::close
int close()
XrdOfs::FSctl
int FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
XrdOfs::isMeta
@ isMeta
Definition: XrdOfs.hh:353
XrdOfs
Definition: XrdOfs.hh:218
XrdSfsFileSystem::EnvInfo
virtual void EnvInfo(XrdOucEnv *envP)
Definition: XrdSfsInterface.hh:970
XrdOfsDirectory
Definition: XrdOfs.hh:63
XrdSysError
Definition: XrdSysError.hh:90
XrdOfs::xatr
int xatr(XrdOucStream &, XrdSysError &)
XrdOfs::Stall
int Stall(XrdOucErrInfo &, int, const char *)
XrdOfs::CksPfn
bool CksPfn
Definition: XrdOfs.hh:443
XrdOfs::poscHold
int poscHold
Definition: XrdOfs.hh:434
XrdOfs::xtpcal
int xtpcal(XrdOucStream &, XrdSysError &)
XrdOfsDirectory::~XrdOfsDirectory
virtual ~XrdOfsDirectory()
Definition: XrdOfs.hh:84
XrdOfs::fwdRM
struct fwdOpt fwdRM
Definition: XrdOfs.hh:390
XrdOfs::Unpersist
void Unpersist(XrdOfsHandle *hP, int xcev=1)
XrdOfs::xrole
int xrole(XrdOucStream &, XrdSysError &)
XrdOfsDirFull
Definition: XrdOfs.hh:95
XrdSfsDirectory::error
XrdOucErrInfo & error
Definition: XrdSfsInterface.hh:247
XrdOfs::ossRPList
XrdOucPListAnchor * ossRPList
Definition: XrdOfs.hh:430
XrdOfs::SubCluster
@ SubCluster
Definition: XrdOfs.hh:357
XrdOfs::ConfigXeq
virtual int ConfigXeq(char *var, XrdOucStream &, XrdSysError &)
XrdOfs::prepare
int prepare(XrdSfsPrep &pargs, XrdOucErrInfo &out_error, const XrdSecEntity *client=0)
XrdOfs::fwdTRUNC
struct fwdOpt fwdTRUNC
Definition: XrdOfs.hh:392
XrdOfs::Fname
const char * Fname(const char *)
XrdOfs::ConfigFN
char * ConfigFN
Definition: XrdOfs.hh:397
XrdOfs::ctlFALst
int ctlFALst(XrdSfsFACtl &faCtl, XrdOucEnv &faEnv, XrdOucErrInfo &einfo)
XrdOfs::remove
int remove(const char type, const char *path, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque)
XrdOfs::Finder
XrdCmsClient * Finder
Definition: XrdOfs.hh:406
XrdOfsPrepare
Definition: XrdOfsPrepare.hh:47
XrdOfsDirFull::myEInfo
XrdOucErrInfo myEInfo
Definition: XrdOfs.hh:104
XrdOfs::FSctl_PI
XrdOfsFSctl_PI * FSctl_PI
Definition: XrdOfs.hh:426
XrdOfs::Configure
virtual int Configure(XrdSysError &)
XrdOfs::fsctl
int fsctl(const int cmd, const char *args, XrdOucErrInfo &out_error, const XrdSecEntity *client=0)