XRootD
XrdOss.hh
Go to the documentation of this file.
1 #ifndef _XRDOSS_H
2 #define _XRDOSS_H
3 /******************************************************************************/
4 /* */
5 /* X r d O s s . 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 <dirent.h>
34 #include <cerrno>
35 #include <cstdint>
36 #include <string>
37 #include <strings.h>
38 #include <sys/stat.h>
39 #include <sys/time.h>
40 #include <sys/types.h>
41 #include <cstring>
42 #include <vector>
43 
44 #include "XrdOss/XrdOssVS.hh"
45 #include "XrdOuc/XrdOucIOVec.hh"
46 #include "XrdOuc/XrdOucRange.hh"
47 
48 struct XrdOucCloneSeg;
49 class XrdOucEnv;
50 class XrdSysLogger;
51 class XrdSfsAio;
52 
53 #ifndef XrdOssOK
54 #define XrdOssOK 0
55 #endif
56 
57 /******************************************************************************/
58 /* C l a s s X r d O s s D F */
59 /******************************************************************************/
60 
65 
66 class XrdOssDF
67 {
68 public:
69 friend class XrdOssArcDF;
70 
71 /******************************************************************************/
72 /* D i r e c t o r y O r i e n t e d M e t h o d s */
73 /******************************************************************************/
74 
75 //-----------------------------------------------------------------------------
82 //-----------------------------------------------------------------------------
83 
84 virtual int Opendir(const char *path, XrdOucEnv &env) {return -ENOTDIR;}
85 
86 //-----------------------------------------------------------------------------
95 //-----------------------------------------------------------------------------
96 
97 virtual int Readdir(char *buff, int blen) {return -ENOTDIR;}
98 
99 //-----------------------------------------------------------------------------
110 //-----------------------------------------------------------------------------
111 
112 virtual int StatRet(struct stat *buff) {return -ENOTSUP;}
113 
114 /******************************************************************************/
115 /* F i l e O r i e n t e d M e t h o d s */
116 /******************************************************************************/
117 
118 //-----------------------------------------------------------------------------
125 //-----------------------------------------------------------------------------
126 
127 virtual int Clone(XrdOssDF& srcFile) {return -ENOTSUP;}
128 
129 //-----------------------------------------------------------------------------
135 //-----------------------------------------------------------------------------
136 
137 virtual int Clone(const std::vector<XrdOucCloneSeg> &cVec)
138  {return -ENOTSUP;}
139 
140 //-----------------------------------------------------------------------------
146 //-----------------------------------------------------------------------------
147 
148 virtual int Fchmod(mode_t mode) {return -EISDIR;}
149 
150 //-----------------------------------------------------------------------------
152 //-----------------------------------------------------------------------------
153 
154 virtual void Flush() {}
155 
156 //-----------------------------------------------------------------------------
162 //-----------------------------------------------------------------------------
163 
164 virtual int Fstat(struct stat *buf) {return -EISDIR;}
165 
166 //-----------------------------------------------------------------------------
170 //-----------------------------------------------------------------------------
171 
172 virtual int Fsync() {return -EISDIR;}
173 
174 //-----------------------------------------------------------------------------
180 //-----------------------------------------------------------------------------
181 
182 virtual int Fsync(XrdSfsAio *aiop) {return -EISDIR;}
183 
184 //-----------------------------------------------------------------------------
190 //-----------------------------------------------------------------------------
191 
192 virtual int Ftruncate(unsigned long long flen) {return -EISDIR;}
193 
194 //-----------------------------------------------------------------------------
202 //-----------------------------------------------------------------------------
203 
204 virtual off_t getMmap(void **addr) {*addr = 0; return 0;}
205 
206 //-----------------------------------------------------------------------------
213 //-----------------------------------------------------------------------------
214 
215 virtual int isCompressed(char *cxidp=0) {(void)cxidp; return 0;}
216 
217 //-----------------------------------------------------------------------------
226 //-----------------------------------------------------------------------------
227 
228 virtual int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env)
229  {return -EISDIR;}
230 
231 //-----------------------------------------------------------------------------
246 //-----------------------------------------------------------------------------
247 
248 // pgRead and pgWrite options as noted.
249 //
250 static const uint64_t
251 Verify = 0x8000000000000000ULL;
252 static const uint64_t
253 doCalc = 0x4000000000000000ULL;
254 
255 virtual ssize_t pgRead (void* buffer, off_t offset, size_t rdlen,
256  uint32_t* csvec, uint64_t opts);
257 
258 //-----------------------------------------------------------------------------
266 //-----------------------------------------------------------------------------
267 
268 virtual int pgRead (XrdSfsAio* aioparm, uint64_t opts);
269 
270 //-----------------------------------------------------------------------------
283 //-----------------------------------------------------------------------------
284 
285 virtual ssize_t pgWrite(void* buffer, off_t offset, size_t wrlen,
286  uint32_t* csvec, uint64_t opts);
287 
288 //-----------------------------------------------------------------------------
296 //-----------------------------------------------------------------------------
297 
298 virtual int pgWrite(XrdSfsAio* aioparm, uint64_t opts);
299 
300 //-----------------------------------------------------------------------------
308 //-----------------------------------------------------------------------------
309 
310 virtual ssize_t Read(off_t offset, size_t size) {return (ssize_t)-EISDIR;}
311 
312 //-----------------------------------------------------------------------------
319 //-----------------------------------------------------------------------------
320 
321 virtual ssize_t Read(XrdOucRangeList& rlist);
322 
323 //-----------------------------------------------------------------------------
332 //-----------------------------------------------------------------------------
333 
334 virtual ssize_t Read(void *buffer, off_t offset, size_t size)
335  {return (ssize_t)-EISDIR;}
336 
337 //-----------------------------------------------------------------------------
344 //-----------------------------------------------------------------------------
345 
346 virtual int Read(XrdSfsAio *aiop) {(void)aiop; return (ssize_t)-EISDIR;}
347 
348 //-----------------------------------------------------------------------------
357 //-----------------------------------------------------------------------------
358 
359 virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
360  {return (ssize_t)-EISDIR;}
361 
362 //-----------------------------------------------------------------------------
370 //-----------------------------------------------------------------------------
371 
372 virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt);
373 
374 //-----------------------------------------------------------------------------
383 //-----------------------------------------------------------------------------
384 
385 virtual ssize_t Write(const void *buffer, off_t offset, size_t size)
386  {return (ssize_t)-EISDIR;}
387 
388 //-----------------------------------------------------------------------------
395 //-----------------------------------------------------------------------------
396 
397 virtual int Write(XrdSfsAio *aiop) {(void)aiop; return (ssize_t)-EISDIR;}
398 
399 //-----------------------------------------------------------------------------
407 //-----------------------------------------------------------------------------
408 
409 virtual ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt);
410 
411 /******************************************************************************/
412 /* C o m m o n D i r e c t o r y a n d F i l e M e t h o d s */
413 /******************************************************************************/
414 //-----------------------------------------------------------------------------
420 //-----------------------------------------------------------------------------
421 
422 virtual int Close(long long *retsz=0)=0;
423 
424 //-----------------------------------------------------------------------------
428 //-----------------------------------------------------------------------------
429 
430 // Returned value will have one or more bits set as below.
431 //
432 static const uint16_t DF_isDir = 0x0001;
433 static const uint16_t DF_isFile = 0x0002;
434 static const uint16_t DF_isProxy = 0x0010;
435 
436 uint16_t DFType() {return dfType;}
437 
438 //-----------------------------------------------------------------------------
456 //-----------------------------------------------------------------------------
457 
458 static const int Fctl_ckpObj = 0;
459 static const int Fctl_utimes = 1;
460 static const int Fctl_setFD = 2; // alen = sizeof(int), args->int
461 static const int Fctl_QFinfo = 3;
462 
463 virtual int Fctl(int cmd, int alen, const char *args, char **resp=0);
464 
465 //-----------------------------------------------------------------------------
476 //-----------------------------------------------------------------------------
477 
478 virtual bool getErrMsg(std::string& eText) {return false;}
479 
480 //-----------------------------------------------------------------------------
484 //-----------------------------------------------------------------------------
485 
486 virtual int getFD() {return -1;} // Must override to support sendfile()
487 
488 //-----------------------------------------------------------------------------
492 //-----------------------------------------------------------------------------
493 virtual
494 const char *getTID() {return tident;}
495 
496 //-----------------------------------------------------------------------------
502 //-----------------------------------------------------------------------------
503 
504  XrdOssDF(const char *tid="", uint16_t dftype=0, int fdnum=-1)
505  : tident(tid), pgwEOF(0), fd(fdnum), dfType(dftype),
506  rsvd(0) {}
507 
508 virtual ~XrdOssDF() {}
509 
510 
511 protected:
512 
513 const char *tident; // Trace identifier
514 off_t pgwEOF; // Highest short offset on pgWrite (0 means none yet)
515 int fd; // The associated file descriptor.
516 uint16_t dfType; // Type of this object
517 short rsvd; // Reserved
518 };
519 
520 /******************************************************************************/
521 /* X r d O s s O p t i o n s */
522 /******************************************************************************/
523 
524 // Options that can be passed to Create()
525 //
526 #define XRDOSS_mkpath 0x01
527 #define XRDOSS_new 0x02
528 #define XRDOSS_Online 0x04
529 #define XRDOSS_coloc 0x08
530 #define XRDOSS_isPFN 0x10
531 #define XRDOSS_isMIG 0x20
532 #define XRDOSS_setnoxa 0x40
533 
534 // Values returned by Features()
535 //
536 #define XRDOSS_HASPGRW 0x0000000000000001ULL
537 #define XRDOSS_HASFSCS 0x0000000000000002ULL
538 #define XRDOSS_HASPRXY 0x0000000000000004ULL
539 #define XRDOSS_HASNOSF 0x0000000000000008ULL
540 #define XRDOSS_HASCACH 0x0000000000000010ULL
541 #define XRDOSS_HASNAIO 0x0000000000000020ULL
542 #define XRDOSS_HASRPXY 0x0000000000000040ULL
543 #define XRDOSS_HASXERT 0x0000000000000080ULL
544 #define XRDOSS_HASFICL 0x0000000000000100ULL
545 
546 // Options that can be passed to Stat()
547 //
548 #define XRDOSS_resonly 0x0001
549 #define XRDOSS_updtatm 0x0002
550 #define XRDOSS_preop 0x0004
551 
552 // Commands that can be passed to FSctl
553 //
554 #define XRDOSS_FSCTLFA 0x0001
555 #define XRDOSS_FSCTLFS 0x0002
556 
557 /******************************************************************************/
558 /* C l a s s X r d O s s */
559 /******************************************************************************/
560 
561 class XrdOss
562 {
563 public:
564 
565 //-----------------------------------------------------------------------------
572 //-----------------------------------------------------------------------------
573 
574 virtual XrdOssDF *newDir(const char *tident)=0;
575 
576 //-----------------------------------------------------------------------------
583 //-----------------------------------------------------------------------------
584 
585 virtual XrdOssDF *newFile(const char *tident)=0;
586 
587 //-----------------------------------------------------------------------------
595 //-----------------------------------------------------------------------------
596 
597 virtual int Chmod(const char * path, mode_t mode, XrdOucEnv *envP=0)=0;
598 
599 //-----------------------------------------------------------------------------
603 //-----------------------------------------------------------------------------
604 
605 virtual void Connect(XrdOucEnv &env);
606 
607 //-----------------------------------------------------------------------------
622 //-----------------------------------------------------------------------------
623 
624 virtual int Create(const char *tid, const char *path,
625  mode_t mode, XrdOucEnv &env,
626  int opts=0)=0;
627 
628 //-----------------------------------------------------------------------------
632 //-----------------------------------------------------------------------------
633 
634 virtual void Disc(XrdOucEnv &env);
635 
636 //-----------------------------------------------------------------------------
640 //-----------------------------------------------------------------------------
641 
642 virtual void EnvInfo(XrdOucEnv *envP);
643 
644 //-----------------------------------------------------------------------------
648 //-----------------------------------------------------------------------------
649 
650 virtual uint64_t Features();
651 
652 //-----------------------------------------------------------------------------
663 //-----------------------------------------------------------------------------
664 
665 virtual int FSctl(int cmd, int alen, const char *args, char **resp=0);
666 
667 //-----------------------------------------------------------------------------
678 //-----------------------------------------------------------------------------
679 
680 virtual bool getErrMsg(std::string& eText) {return false;}
681 
682 //-----------------------------------------------------------------------------
689 //-----------------------------------------------------------------------------
690 
691 virtual int Init(XrdSysLogger *lp, const char *cfn)=0;
692 
693 //-----------------------------------------------------------------------------
701 //-----------------------------------------------------------------------------
702 
703 virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
704  {return Init(lp, cfn);}
705 
706 //-----------------------------------------------------------------------------
715 //-----------------------------------------------------------------------------
716 
717 virtual int Mkdir(const char *path, mode_t mode, int mkpath=0,
718  XrdOucEnv *envP=0)=0;
719 
720 //-----------------------------------------------------------------------------
729 //-----------------------------------------------------------------------------
730 
731 virtual int Reloc(const char *tident, const char *path,
732  const char *cgName, const char *anchor=0);
733 
734 //-----------------------------------------------------------------------------
744 //-----------------------------------------------------------------------------
745 
746 virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *envP=0)=0;
747 
748 //-----------------------------------------------------------------------------
757 //-----------------------------------------------------------------------------
758 
759 virtual int Rename(const char *oPath, const char *nPath,
760  XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)=0;
761 
762 //-----------------------------------------------------------------------------
774 //-----------------------------------------------------------------------------
775 
776 virtual int Stat(const char *path, struct stat *buff,
777  int opts=0, XrdOucEnv *envP=0)=0;
778 
779 //-----------------------------------------------------------------------------
786 //-----------------------------------------------------------------------------
787 
788 virtual int Stats(char *buff, int blen) {(void)buff; (void)blen; return 0;}
789 
790 //-----------------------------------------------------------------------------
805 //-----------------------------------------------------------------------------
806 
807 virtual int StatFS(const char *path, char *buff, int &blen,
808  XrdOucEnv *envP=0);
809 
810 //-----------------------------------------------------------------------------
826 //-----------------------------------------------------------------------------
827 
828 virtual int StatLS(XrdOucEnv &env, const char *path,
829  char *buff, int &blen);
830 
831 //-----------------------------------------------------------------------------
849 //-----------------------------------------------------------------------------
850 
851 static const int PF_dInfo = 0x00000001;
852 static const int PF_dNums = 0x00000002;
853 static const int PF_isLFN = 0x00000004;
854 static const int PF_dStat = 0x00000008;
855 
856 // Bits returned in st_rdev when PF_dStat specified in opts. Absence of either
857 // PF_csVer and PF_csVun flags means that the file has no checksums present.
858 //
859 static const int PF_csVer = 0x00000001;
860 static const int PF_csVun = 0x00000002;
861 
862 virtual int StatPF(const char *path, struct stat *buff, int opts);
863 
864 virtual int StatPF(const char *path, struct stat *buff)
865  {return StatPF(path, buff, 0);} // Backward compat
866 
867 //-----------------------------------------------------------------------------
879 //-----------------------------------------------------------------------------
880 
881 virtual int StatVS(XrdOssVSInfo *vsP, const char *sname=0, int updt=0);
882 
883 //-----------------------------------------------------------------------------
896 //-----------------------------------------------------------------------------
897 
898 virtual int StatXA(const char *path, char *buff, int &blen,
899  XrdOucEnv *envP=0);
900 
901 //-----------------------------------------------------------------------------
909 //-----------------------------------------------------------------------------
910 
911 virtual int StatXP(const char *path, unsigned long long &attr,
912  XrdOucEnv *envP=0);
913 
914 //-----------------------------------------------------------------------------
922 //-----------------------------------------------------------------------------
923 
924 virtual int Truncate(const char *path, unsigned long long fsize,
925  XrdOucEnv *envP=0)=0;
926 
927 //-----------------------------------------------------------------------------
938 //-----------------------------------------------------------------------------
939 
940 virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *envP=0)=0;
941 
942  // Default Name-to-Name Methods
943 
944 //-----------------------------------------------------------------------------
952 //-----------------------------------------------------------------------------
953 
954 virtual int Lfn2Pfn(const char *Path, char *buff, int blen)
955  {if ((int)strlen(Path) >= blen) return -ENAMETOOLONG;
956  strcpy(buff, Path); return 0;
957  }
958 
959 //-----------------------------------------------------------------------------
969 //-----------------------------------------------------------------------------
970 virtual
971 const char *Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
972  { (void)buff; (void)blen; rc = 0; return Path;}
973 
974 //-----------------------------------------------------------------------------
976 //-----------------------------------------------------------------------------
977 
978  XrdOss() {}
979 virtual ~XrdOss() {}
980 };
981 
982 /******************************************************************************/
983 /* S t o r a g e S y s t e m I n s t a n t i a t o r */
984 /******************************************************************************/
985 
986 //------------------------------------------------------------------------------
1009 //------------------------------------------------------------------------------
1010 
1011 //------------------------------------------------------------------------------
1013 //------------------------------------------------------------------------------
1014 
1015 typedef XrdOss *(*XrdOssGetStorageSystem_t) (XrdOss *native_oss,
1017  const char *config_fn,
1018  const char *parms);
1019 
1020 typedef XrdOss *(*XrdOssGetStorageSystem2_t)(XrdOss *native_oss,
1022  const char *config_fn,
1023  const char *parms,
1024  XrdOucEnv *envP);
1025 
1027 
1059 //------------------------------------------------------------------------------
1065 //------------------------------------------------------------------------------
1066 
1072 #endif
#define tident
XrdOssGetStorageSystem2_t XrdOssAddStorageSystem2_t
Definition: XrdOss.hh:1026
XrdOss *(* XrdOssGetStorageSystem2_t)(XrdOss *native_oss, XrdSysLogger *Logger, const char *config_fn, const char *parms, XrdOucEnv *envP)
Definition: XrdOss.hh:1020
std::vector< XrdOucRange > XrdOucRangeList
Definition: XrdOucRange.hh:57
#define stat(a, b)
Definition: XrdPosix.hh:105
int Mode
XrdOucString Path
struct myOpts opts
virtual int Read(XrdSfsAio *aiop)
Definition: XrdOss.hh:346
uint16_t dfType
Definition: XrdOss.hh:516
virtual int Fsync()
Definition: XrdOss.hh:172
static const uint16_t DF_isFile
Object is for a file.
Definition: XrdOss.hh:433
static const uint64_t doCalc
pgw: Calculate checksums
Definition: XrdOss.hh:253
const char * tident
Definition: XrdOss.hh:513
virtual int StatRet(struct stat *buff)
Definition: XrdOss.hh:112
virtual ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt)
Definition: XrdOss.cc:273
virtual int isCompressed(char *cxidp=0)
Definition: XrdOss.hh:215
virtual int Opendir(const char *path, XrdOucEnv &env)
Definition: XrdOss.hh:84
virtual int Clone(XrdOssDF &srcFile)
Definition: XrdOss.hh:127
virtual int Write(XrdSfsAio *aiop)
Definition: XrdOss.hh:397
virtual int Clone(const std::vector< XrdOucCloneSeg > &cVec)
Definition: XrdOss.hh:137
virtual int Ftruncate(unsigned long long flen)
Definition: XrdOss.hh:192
XrdOssDF(const char *tid="", uint16_t dftype=0, int fdnum=-1)
Definition: XrdOss.hh:504
virtual const char * getTID()
Definition: XrdOss.hh:494
int fd
Definition: XrdOss.hh:515
static const int Fctl_utimes
Definition: XrdOss.hh:459
virtual int Readdir(char *buff, int blen)
Definition: XrdOss.hh:97
friend class XrdOssArcDF
Definition: XrdOss.hh:69
virtual int Fstat(struct stat *buf)
Definition: XrdOss.hh:164
off_t pgwEOF
Definition: XrdOss.hh:514
static const uint64_t Verify
all: Verify checksums
Definition: XrdOss.hh:251
virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
Definition: XrdOss.hh:359
virtual int Close(long long *retsz=0)=0
virtual int getFD()
Definition: XrdOss.hh:486
static const uint16_t DF_isDir
Object is for a directory.
Definition: XrdOss.hh:432
virtual int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env)
Definition: XrdOss.hh:228
virtual ~XrdOssDF()
Definition: XrdOss.hh:508
virtual ssize_t Read(off_t offset, size_t size)
Definition: XrdOss.hh:310
virtual ssize_t Read(void *buffer, off_t offset, size_t size)
Definition: XrdOss.hh:334
short rsvd
Definition: XrdOss.hh:517
virtual int Fctl(int cmd, int alen, const char *args, char **resp=0)
Definition: XrdOss.cc:150
virtual int Fchmod(mode_t mode)
Definition: XrdOss.hh:148
virtual int Fsync(XrdSfsAio *aiop)
Definition: XrdOss.hh:182
static const int Fctl_ckpObj
Definition: XrdOss.hh:458
virtual ssize_t pgWrite(void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts)
Definition: XrdOss.cc:198
virtual ssize_t pgRead(void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts)
Definition: XrdOss.cc:160
static const uint16_t DF_isProxy
Object is a proxy object.
Definition: XrdOss.hh:434
virtual void Flush()
Flush filesystem cached pages for this file (used for checksums).
Definition: XrdOss.hh:154
virtual off_t getMmap(void **addr)
Definition: XrdOss.hh:204
virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt)
Definition: XrdOss.cc:252
uint16_t DFType()
Definition: XrdOss.hh:436
virtual bool getErrMsg(std::string &eText)
Definition: XrdOss.hh:478
static const int Fctl_setFD
Definition: XrdOss.hh:460
virtual ssize_t Write(const void *buffer, off_t offset, size_t size)
Definition: XrdOss.hh:385
static const int Fctl_QFinfo
Definition: XrdOss.hh:461
virtual int Mkdir(const char *path, mode_t mode, int mkpath=0, XrdOucEnv *envP=0)=0
virtual int FSctl(int cmd, int alen, const char *args, char **resp=0)
Definition: XrdOss.cc:66
virtual bool getErrMsg(std::string &eText)
Definition: XrdOss.hh:680
static const int PF_dStat
Definition: XrdOss.hh:854
virtual int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen)
Definition: XrdOss.cc:97
static const int PF_dNums
Definition: XrdOss.hh:852
virtual int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
Definition: XrdOss.cc:127
static const int PF_csVer
verified file checksums present
Definition: XrdOss.hh:859
virtual int Create(const char *tid, const char *path, mode_t mode, XrdOucEnv &env, int opts=0)=0
virtual int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *envP=0)
Definition: XrdOss.cc:137
virtual XrdOssDF * newDir(const char *tident)=0
virtual void Connect(XrdOucEnv &env)
Definition: XrdOss.cc:42
virtual int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
Definition: XrdOss.cc:76
virtual int Chmod(const char *path, mode_t mode, XrdOucEnv *envP=0)=0
virtual uint64_t Features()
Definition: XrdOss.cc:60
virtual int StatPF(const char *path, struct stat *buff, int opts)
Definition: XrdOss.cc:107
virtual void Disc(XrdOucEnv &env)
Definition: XrdOss.cc:48
static const int PF_csVun
unverified file checksums present
Definition: XrdOss.hh:860
virtual int Lfn2Pfn(const char *Path, char *buff, int blen)
Definition: XrdOss.hh:954
virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *envP=0)=0
virtual int Init(XrdSysLogger *lp, const char *cfn)=0
virtual int StatVS(XrdOssVSInfo *vsP, const char *sname=0, int updt=0)
Definition: XrdOss.cc:117
virtual int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
Definition: XrdOss.cc:87
virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
Definition: XrdOss.hh:703
static const int PF_dInfo
Definition: XrdOss.hh:851
virtual void EnvInfo(XrdOucEnv *envP)
Definition: XrdOss.cc:54
virtual int Rename(const char *oPath, const char *nPath, XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)=0
virtual const char * Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
Definition: XrdOss.hh:971
virtual XrdOssDF * newFile(const char *tident)=0
XrdOss()
Constructor and Destructor.
Definition: XrdOss.hh:978
virtual int Truncate(const char *path, unsigned long long fsize, XrdOucEnv *envP=0)=0
virtual int Stats(char *buff, int blen)
Definition: XrdOss.hh:788
virtual int Stat(const char *path, struct stat *buff, int opts=0, XrdOucEnv *envP=0)=0
virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *envP=0)=0
virtual ~XrdOss()
Definition: XrdOss.hh:979
virtual int StatPF(const char *path, struct stat *buff)
Definition: XrdOss.hh:864
static const int PF_isLFN
Definition: XrdOss.hh:853
XrdSysLogger Logger
Definition: XrdGlobals.cc:47
int Opts
Definition: XrdMpxStats.cc:58
XrdOucEnv * envP
Definition: XrdPss.cc:110