XRootD
Loading...
Searching...
No Matches
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
48struct XrdOucCloneSeg;
49class XrdOucEnv;
50class XrdSysLogger;
51class 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
67{
68public:
69friend 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
84virtual int Opendir(const char *path, XrdOucEnv &env) {return -ENOTDIR;}
85
86//-----------------------------------------------------------------------------
95//-----------------------------------------------------------------------------
96
97virtual int Readdir(char *buff, int blen) {return -ENOTDIR;}
98
99//-----------------------------------------------------------------------------
110//-----------------------------------------------------------------------------
111
112virtual 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
127virtual int Clone(XrdOssDF& srcFile) {return -ENOTSUP;}
128
129//-----------------------------------------------------------------------------
135//-----------------------------------------------------------------------------
136
137virtual int Clone(const std::vector<XrdOucCloneSeg> &cVec)
138 {return -ENOTSUP;}
139
140//-----------------------------------------------------------------------------
146//-----------------------------------------------------------------------------
147
148virtual int Fchmod(mode_t mode) {return -EISDIR;}
149
150//-----------------------------------------------------------------------------
152//-----------------------------------------------------------------------------
153
154virtual void Flush() {}
155
156//-----------------------------------------------------------------------------
162//-----------------------------------------------------------------------------
163
164virtual int Fstat(struct stat *buf) {return -EISDIR;}
165
166//-----------------------------------------------------------------------------
170//-----------------------------------------------------------------------------
171
172virtual int Fsync() {return -EISDIR;}
173
174//-----------------------------------------------------------------------------
180//-----------------------------------------------------------------------------
181
182virtual int Fsync(XrdSfsAio *aiop) {return -EISDIR;}
183
184//-----------------------------------------------------------------------------
190//-----------------------------------------------------------------------------
191
192virtual int Ftruncate(unsigned long long flen) {return -EISDIR;}
193
194//-----------------------------------------------------------------------------
202//-----------------------------------------------------------------------------
203
204virtual off_t getMmap(void **addr) {*addr = 0; return 0;}
205
206//-----------------------------------------------------------------------------
213//-----------------------------------------------------------------------------
214
215virtual int isCompressed(char *cxidp=0) {(void)cxidp; return 0;}
216
217//-----------------------------------------------------------------------------
226//-----------------------------------------------------------------------------
227
228virtual 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//
250static const uint64_t
251Verify = 0x8000000000000000ULL;
252static const uint64_t
253doCalc = 0x4000000000000000ULL;
254
255virtual ssize_t pgRead (void* buffer, off_t offset, size_t rdlen,
256 uint32_t* csvec, uint64_t opts);
257
258//-----------------------------------------------------------------------------
266//-----------------------------------------------------------------------------
267
268virtual int pgRead (XrdSfsAio* aioparm, uint64_t opts);
269
270//-----------------------------------------------------------------------------
283//-----------------------------------------------------------------------------
284
285virtual ssize_t pgWrite(void* buffer, off_t offset, size_t wrlen,
286 uint32_t* csvec, uint64_t opts);
287
288//-----------------------------------------------------------------------------
296//-----------------------------------------------------------------------------
297
298virtual int pgWrite(XrdSfsAio* aioparm, uint64_t opts);
299
300//-----------------------------------------------------------------------------
308//-----------------------------------------------------------------------------
309
310virtual ssize_t Read(off_t offset, size_t size) {return (ssize_t)-EISDIR;}
311
312//-----------------------------------------------------------------------------
319//-----------------------------------------------------------------------------
320
321virtual ssize_t Read(XrdOucRangeList& rlist);
322
323//-----------------------------------------------------------------------------
332//-----------------------------------------------------------------------------
333
334virtual ssize_t Read(void *buffer, off_t offset, size_t size)
335 {return (ssize_t)-EISDIR;}
336
337//-----------------------------------------------------------------------------
344//-----------------------------------------------------------------------------
345
346virtual int Read(XrdSfsAio *aiop) {(void)aiop; return (ssize_t)-EISDIR;}
347
348//-----------------------------------------------------------------------------
357//-----------------------------------------------------------------------------
358
359virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
360 {return (ssize_t)-EISDIR;}
361
362//-----------------------------------------------------------------------------
370//-----------------------------------------------------------------------------
371
372virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt);
373
374//-----------------------------------------------------------------------------
383//-----------------------------------------------------------------------------
384
385virtual ssize_t Write(const void *buffer, off_t offset, size_t size)
386 {return (ssize_t)-EISDIR;}
387
388//-----------------------------------------------------------------------------
395//-----------------------------------------------------------------------------
396
397virtual int Write(XrdSfsAio *aiop) {(void)aiop; return (ssize_t)-EISDIR;}
398
399//-----------------------------------------------------------------------------
407//-----------------------------------------------------------------------------
408
409virtual 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
422virtual int Close(long long *retsz=0)=0;
423
424//-----------------------------------------------------------------------------
428//-----------------------------------------------------------------------------
429
430// Returned value will have one or more bits set as below.
431//
432static const uint16_t DF_isDir = 0x0001;
433static const uint16_t DF_isFile = 0x0002;
434static const uint16_t DF_isProxy = 0x0010;
435
436uint16_t DFType() {return dfType;}
437
438//-----------------------------------------------------------------------------
456//-----------------------------------------------------------------------------
457
458static const int Fctl_ckpObj = 0;
459static const int Fctl_utimes = 1;
460static const int Fctl_setFD = 2; // alen = sizeof(int), args->int
461static const int Fctl_QFinfo = 3;
462
463virtual int Fctl(int cmd, int alen, const char *args, char **resp=0);
464
465//-----------------------------------------------------------------------------
476//-----------------------------------------------------------------------------
477
478virtual bool getErrMsg(std::string& eText) {return false;}
479
480//-----------------------------------------------------------------------------
484//-----------------------------------------------------------------------------
485
486virtual int getFD() {return -1;} // Must override to support sendfile()
487
488//-----------------------------------------------------------------------------
492//-----------------------------------------------------------------------------
493virtual
494const 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
508virtual ~XrdOssDF() {}
509
510
511protected:
512
513const char *tident; // Trace identifier
514off_t pgwEOF; // Highest short offset on pgWrite (0 means none yet)
515int fd; // The associated file descriptor.
516uint16_t dfType; // Type of this object
517short 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
562{
563public:
564
565//-----------------------------------------------------------------------------
572//-----------------------------------------------------------------------------
573
574virtual XrdOssDF *newDir(const char *tident)=0;
575
576//-----------------------------------------------------------------------------
583//-----------------------------------------------------------------------------
584
585virtual XrdOssDF *newFile(const char *tident)=0;
586
587//-----------------------------------------------------------------------------
595//-----------------------------------------------------------------------------
596
597virtual int Chmod(const char * path, mode_t mode, XrdOucEnv *envP=0)=0;
598
599//-----------------------------------------------------------------------------
603//-----------------------------------------------------------------------------
604
605virtual void Connect(XrdOucEnv &env);
606
607//-----------------------------------------------------------------------------
622//-----------------------------------------------------------------------------
623
624virtual int Create(const char *tid, const char *path,
625 mode_t mode, XrdOucEnv &env,
626 int opts=0)=0;
627
628//-----------------------------------------------------------------------------
632//-----------------------------------------------------------------------------
633
634virtual void Disc(XrdOucEnv &env);
635
636//-----------------------------------------------------------------------------
640//-----------------------------------------------------------------------------
641
642virtual void EnvInfo(XrdOucEnv *envP);
643
644//-----------------------------------------------------------------------------
648//-----------------------------------------------------------------------------
649
650virtual uint64_t Features();
651
652//-----------------------------------------------------------------------------
663//-----------------------------------------------------------------------------
664
665virtual int FSctl(int cmd, int alen, const char *args, char **resp=0);
666
667//-----------------------------------------------------------------------------
678//-----------------------------------------------------------------------------
679
680virtual bool getErrMsg(std::string& eText) {return false;}
681
682//-----------------------------------------------------------------------------
689//-----------------------------------------------------------------------------
690
691virtual int Init(XrdSysLogger *lp, const char *cfn)=0;
692
693//-----------------------------------------------------------------------------
701//-----------------------------------------------------------------------------
702
703virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
704 {return Init(lp, cfn);}
705
706//-----------------------------------------------------------------------------
715//-----------------------------------------------------------------------------
716
717virtual int Mkdir(const char *path, mode_t mode, int mkpath=0,
718 XrdOucEnv *envP=0)=0;
719
720//-----------------------------------------------------------------------------
729//-----------------------------------------------------------------------------
730
731virtual int Reloc(const char *tident, const char *path,
732 const char *cgName, const char *anchor=0);
733
734//-----------------------------------------------------------------------------
744//-----------------------------------------------------------------------------
745
746virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *envP=0)=0;
747
748//-----------------------------------------------------------------------------
757//-----------------------------------------------------------------------------
758
759virtual int Rename(const char *oPath, const char *nPath,
760 XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)=0;
761
762//-----------------------------------------------------------------------------
774//-----------------------------------------------------------------------------
775
776virtual int Stat(const char *path, struct stat *buff,
777 int opts=0, XrdOucEnv *envP=0)=0;
778
779//-----------------------------------------------------------------------------
786//-----------------------------------------------------------------------------
787
788virtual int Stats(char *buff, int blen) {(void)buff; (void)blen; return 0;}
789
790//-----------------------------------------------------------------------------
805//-----------------------------------------------------------------------------
806
807virtual int StatFS(const char *path, char *buff, int &blen,
808 XrdOucEnv *envP=0);
809
810//-----------------------------------------------------------------------------
826//-----------------------------------------------------------------------------
827
828virtual int StatLS(XrdOucEnv &env, const char *path,
829 char *buff, int &blen);
830
831//-----------------------------------------------------------------------------
849//-----------------------------------------------------------------------------
850
851static const int PF_dInfo = 0x00000001;
852static const int PF_dNums = 0x00000002;
853static const int PF_isLFN = 0x00000004;
854static 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//
859static const int PF_csVer = 0x00000001;
860static const int PF_csVun = 0x00000002;
861
862virtual int StatPF(const char *path, struct stat *buff, int opts);
863
864virtual int StatPF(const char *path, struct stat *buff)
865 {return StatPF(path, buff, 0);} // Backward compat
866
867//-----------------------------------------------------------------------------
879//-----------------------------------------------------------------------------
880
881virtual int StatVS(XrdOssVSInfo *vsP, const char *sname=0, int updt=0);
882
883//-----------------------------------------------------------------------------
896//-----------------------------------------------------------------------------
897
898virtual int StatXA(const char *path, char *buff, int &blen,
899 XrdOucEnv *envP=0);
900
901//-----------------------------------------------------------------------------
909//-----------------------------------------------------------------------------
910
911virtual int StatXP(const char *path, unsigned long long &attr,
912 XrdOucEnv *envP=0);
913
914//-----------------------------------------------------------------------------
922//-----------------------------------------------------------------------------
923
924virtual int Truncate(const char *path, unsigned long long fsize,
925 XrdOucEnv *envP=0)=0;
926
927//-----------------------------------------------------------------------------
938//-----------------------------------------------------------------------------
939
940virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *envP=0)=0;
941
942 // Default Name-to-Name Methods
943
944//-----------------------------------------------------------------------------
952//-----------------------------------------------------------------------------
953
954virtual 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//-----------------------------------------------------------------------------
970virtual
971const char *Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
972 { (void)buff; (void)blen; rc = 0; return Path;}
973
974//-----------------------------------------------------------------------------
976//-----------------------------------------------------------------------------
977
979virtual ~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
1015typedef XrdOss *(*XrdOssGetStorageSystem_t) (XrdOss *native_oss,
1017 const char *config_fn,
1018 const char *parms);
1019
1020typedef XrdOss *(*XrdOssGetStorageSystem2_t)(XrdOss *native_oss,
1022 const char *config_fn,
1023 const char *parms,
1024 XrdOucEnv *envP);
1025
1027
1058
1059//------------------------------------------------------------------------------
1065//------------------------------------------------------------------------------
1066
1072#endif
#define tident
static XrdSysLogger Logger
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
#define stat(a, b)
Definition XrdPosix.hh:101
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 const char * getTID()
Definition XrdOss.hh:494
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
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 * newFile(const char *tident)=0
virtual void Connect(XrdOucEnv &env)
Definition XrdOss.cc:42
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 const char * Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
Definition XrdOss.hh:971
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
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 XrdOssDF * newDir(const char *tident)=0
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