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 <errno.h>
35 #include <stdint.h>
36 #include <strings.h>
37 #include <sys/stat.h>
38 #include <sys/types.h>
39 #include <string.h>
40 
41 #include "XrdOss/XrdOssVS.hh"
42 #include "XrdOuc/XrdOucIOVec.hh"
43 
44 class XrdOucEnv;
45 class XrdSysLogger;
46 class XrdSfsAio;
47 
48 #ifndef XrdOssOK
49 #define XrdOssOK 0
50 #endif
51 
52 /******************************************************************************/
53 /* C l a s s X r d O s s D F */
54 /******************************************************************************/
55 
60 
61 class XrdOssDF
62 {
63 public:
64 
65 /******************************************************************************/
66 /* D i r e c t o r y O r i e n t e d M e t h o d s */
67 /******************************************************************************/
68 
69 //-----------------------------------------------------------------------------
76 //-----------------------------------------------------------------------------
77 
78 virtual int Opendir(const char *path, XrdOucEnv &env) {return -ENOTDIR;}
79 
80 //-----------------------------------------------------------------------------
89 //-----------------------------------------------------------------------------
90 
91 virtual int Readdir(char *buff, int blen) {return -ENOTDIR;}
92 
93 //-----------------------------------------------------------------------------
102 //-----------------------------------------------------------------------------
103 
104 virtual int StatRet(struct stat *) {return -ENOTSUP;}
105 
106 /******************************************************************************/
107 /* F i l e O r i e n t e d M e t h o d s */
108 /******************************************************************************/
109 //-----------------------------------------------------------------------------
115 //-----------------------------------------------------------------------------
116 
117 virtual int Fchmod(mode_t mode) {return -EISDIR;}
118 
119 //-----------------------------------------------------------------------------
121 //-----------------------------------------------------------------------------
122 
123 virtual void Flush() {}
124 
125 //-----------------------------------------------------------------------------
131 //-----------------------------------------------------------------------------
132 
133 virtual int Fstat(struct stat *buf) {return -EISDIR;}
134 
135 //-----------------------------------------------------------------------------
139 //-----------------------------------------------------------------------------
140 
141 virtual int Fsync() {return -EISDIR;}
142 
143 //-----------------------------------------------------------------------------
149 //-----------------------------------------------------------------------------
150 
151 virtual int Fsync(XrdSfsAio *aiop) {return -EISDIR;}
152 
153 //-----------------------------------------------------------------------------
159 //-----------------------------------------------------------------------------
160 
161 virtual int Ftruncate(unsigned long long) {return -EISDIR;}
162 
163 //-----------------------------------------------------------------------------
171 //-----------------------------------------------------------------------------
172 
173 virtual off_t getMmap(void **addr) {*addr = 0; return 0;}
174 
175 //-----------------------------------------------------------------------------
182 //-----------------------------------------------------------------------------
183 
184 virtual int isCompressed(char *cxidp=0) {(void)cxidp; return 0;}
185 
186 //-----------------------------------------------------------------------------
195 //-----------------------------------------------------------------------------
196 
197 virtual int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env)
198  {return -EISDIR;}
199 
200 //-----------------------------------------------------------------------------
215 //-----------------------------------------------------------------------------
216 
217 // pgRead and pgWrite options as noted.
218 //
219 static const uint64_t
220 Verify = 0x8000000000000000ULL;
221 static const uint64_t
222 doCalc = 0x4000000000000000ULL;
223 
224 virtual ssize_t pgRead (void* buffer, off_t offset, size_t rdlen,
225  uint32_t* csvec, uint64_t opts);
226 
227 //-----------------------------------------------------------------------------
235 //-----------------------------------------------------------------------------
236 
237 virtual int pgRead (XrdSfsAio* aioparm, uint64_t opts);
238 
239 //-----------------------------------------------------------------------------
256 //-----------------------------------------------------------------------------
257 
258 virtual ssize_t pgWrite(void* buffer, off_t offset, size_t wrlen,
259  uint32_t* csvec, uint64_t opts);
260 
261 //-----------------------------------------------------------------------------
269 //-----------------------------------------------------------------------------
270 
271 virtual int pgWrite(XrdSfsAio* aoiparm, uint64_t opts);
272 
273 //-----------------------------------------------------------------------------
280 //-----------------------------------------------------------------------------
281 
282 virtual ssize_t Read(off_t offset, size_t size) {return (ssize_t)-EISDIR;}
283 
284 //-----------------------------------------------------------------------------
293 //-----------------------------------------------------------------------------
294 
295 virtual ssize_t Read(void *buffer, off_t offset, size_t size)
296  {return (ssize_t)-EISDIR;}
297 
298 //-----------------------------------------------------------------------------
305 //-----------------------------------------------------------------------------
306 
307 virtual int Read(XrdSfsAio *aoip) {(void)aoip; return (ssize_t)-EISDIR;}
308 
309 //-----------------------------------------------------------------------------
318 //-----------------------------------------------------------------------------
319 
320 virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
321  {return (ssize_t)-EISDIR;}
322 
323 //-----------------------------------------------------------------------------
331 //-----------------------------------------------------------------------------
332 
333 virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt);
334 
335 //-----------------------------------------------------------------------------
344 //-----------------------------------------------------------------------------
345 
346 virtual ssize_t Write(const void *buffer, off_t offset, size_t size)
347  {return (ssize_t)-EISDIR;}
348 
349 //-----------------------------------------------------------------------------
356 //-----------------------------------------------------------------------------
357 
358 virtual int Write(XrdSfsAio *aiop) {(void)aiop; return (ssize_t)-EISDIR;}
359 
360 //-----------------------------------------------------------------------------
368 //-----------------------------------------------------------------------------
369 
370 virtual ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt);
371 
372 /******************************************************************************/
373 /* 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 */
374 /******************************************************************************/
375 //-----------------------------------------------------------------------------
381 //-----------------------------------------------------------------------------
382 
383 virtual int Close(long long *retsz=0)=0;
384 
385 //-----------------------------------------------------------------------------
389 //-----------------------------------------------------------------------------
390 
391 // Returned value will have one or more bits set as below.
392 //
393 static const uint16_t DF_isDir = 0x0001;
394 static const uint16_t DF_isFile = 0x0002;
395 static const uint16_t DF_isProxy = 0x0010;
396 
397 uint16_t DFType() {return dfType;}
398 
399 //-----------------------------------------------------------------------------
409 //-----------------------------------------------------------------------------
410 
411 virtual int Fctl(int cmd, int alen, const char *args, char **resp=0);
412 
413 //-----------------------------------------------------------------------------
417 //-----------------------------------------------------------------------------
418 
419 virtual int getFD() {return -1;} // Must override to support sendfile()
420 
421 //-----------------------------------------------------------------------------
425 //-----------------------------------------------------------------------------
426 virtual
427 const char *getTID() {return tident;}
428 
429 //-----------------------------------------------------------------------------
435 //-----------------------------------------------------------------------------
436 
437  XrdOssDF(const char *tid="", uint16_t dftype=0, int fdnum=-1)
438  : tident(tid), pgwEOF(0), fd(fdnum), dfType(dftype),
439  rsvd(0) {}
440 
441 virtual ~XrdOssDF() {}
442 
443 
444 protected:
445 
446 const char *tident; // Trace identifier
447 off_t pgwEOF; // Highest short offset on pgWrite (0 means none yet)
448 int fd; // The associated file descriptor.
449 uint16_t dfType; // Type of this object
450 short rsvd; // Reserved
451 };
452 
453 /******************************************************************************/
454 /* X r d O s s O p t i o n s */
455 /******************************************************************************/
456 
457 // Options that can be passed to Create()
458 //
459 #define XRDOSS_mkpath 0x01
460 #define XRDOSS_new 0x02
461 #define XRDOSS_Online 0x04
462 #define XRDOSS_isPFN 0x10
463 #define XRDOSS_isMIG 0x20
464 #define XRDOSS_setnoxa 0x40
465 
466 // Values returned by Features()
467 //
468 #define XRDOSS_HASPGRW 0x0000000000000001ULL
469 #define XRDOSS_HASFSCS 0x0000000000000002ULL
470 #define XRDOSS_HASPRXY 0x0000000000000004ULL
471 #define XRDOSS_HASNOSF 0x0000000000000008ULL
472 
473 // Options that can be passed to Stat()
474 //
475 #define XRDOSS_resonly 0x0001
476 #define XRDOSS_updtatm 0x0002
477 #define XRDOSS_preop 0x0004
478 
479 // Commands that can be passed to FSctl
480 //
481 #define XRDOSS_FSCTLFA 0x0001
482 
483 /******************************************************************************/
484 /* C l a s s X r d O s s */
485 /******************************************************************************/
486 
487 class XrdOss
488 {
489 public:
490 
491 //-----------------------------------------------------------------------------
498 //-----------------------------------------------------------------------------
499 
500 virtual XrdOssDF *newDir(const char *tident)=0;
501 
502 //-----------------------------------------------------------------------------
509 //-----------------------------------------------------------------------------
510 
511 virtual XrdOssDF *newFile(const char *tident)=0;
512 
513 //-----------------------------------------------------------------------------
521 //-----------------------------------------------------------------------------
522 
523 virtual int Chmod(const char * path, mode_t mode, XrdOucEnv *envP=0)=0;
524 
525 //-----------------------------------------------------------------------------
529 //-----------------------------------------------------------------------------
530 
531 virtual void Connect(XrdOucEnv &env);
532 
533 //-----------------------------------------------------------------------------
545 //-----------------------------------------------------------------------------
546 
547 virtual int Create(const char *, const char *, mode_t, XrdOucEnv &,
548  int opts=0)=0;
549 
550 //-----------------------------------------------------------------------------
554 //-----------------------------------------------------------------------------
555 
556 virtual void Disc(XrdOucEnv &env);
557 
558 //-----------------------------------------------------------------------------
562 //-----------------------------------------------------------------------------
563 
564 virtual void EnvInfo(XrdOucEnv *envP);
565 
566 //-----------------------------------------------------------------------------
570 //-----------------------------------------------------------------------------
571 
572 virtual uint64_t Features();
573 
574 //-----------------------------------------------------------------------------
583 //-----------------------------------------------------------------------------
584 
585 virtual int FSctl(int cms, int alen, const char *args, char **resp=0);
586 
587 //-----------------------------------------------------------------------------
594 //-----------------------------------------------------------------------------
595 
596 virtual int Init(XrdSysLogger *lp, const char *cfn)=0;
597 
598 //-----------------------------------------------------------------------------
606 //-----------------------------------------------------------------------------
607 
608 virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
609  {return Init(lp, cfn);}
610 
611 //-----------------------------------------------------------------------------
620 //-----------------------------------------------------------------------------
621 
622 virtual int Mkdir(const char *path, mode_t mode, int mkpath=0,
623  XrdOucEnv *envP=0)=0;
624 
625 //-----------------------------------------------------------------------------
634 //-----------------------------------------------------------------------------
635 
636 virtual int Reloc(const char *tident, const char *path,
637  const char *cgName, const char *anchor=0);
638 
639 //-----------------------------------------------------------------------------
649 //-----------------------------------------------------------------------------
650 
651 virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *envP=0)=0;
652 
653 //-----------------------------------------------------------------------------
662 //-----------------------------------------------------------------------------
663 
664 virtual int Rename(const char *oPath, const char *nPath,
665  XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)=0;
666 
667 //-----------------------------------------------------------------------------
679 //-----------------------------------------------------------------------------
680 
681 virtual int Stat(const char *path, struct stat *buff,
682  int opts=0, XrdOucEnv *envP=0)=0;
683 
684 //-----------------------------------------------------------------------------
691 //-----------------------------------------------------------------------------
692 
693 virtual int Stats(char *buff, int blen) {(void)buff; (void)blen; return 0;}
694 
695 //-----------------------------------------------------------------------------
713 //-----------------------------------------------------------------------------
714 
715 virtual int StatFS(const char *path, char *buff, int &blen,
716  XrdOucEnv *envP=0);
717 
718 //-----------------------------------------------------------------------------
736 //-----------------------------------------------------------------------------
737 
738 virtual int StatLS(XrdOucEnv &env, const char *path,
739  char *buff, int &blen);
740 
741 //-----------------------------------------------------------------------------
756 //-----------------------------------------------------------------------------
757 
758 static const int PF_dInfo = 0x00000001;
759 static const int PF_dNums = 0x00000002;
760 static const int PF_isLFN = 0x00000004;
761 
762 virtual int StatPF(const char *path, struct stat *buff, int opts);
763 
764 virtual int StatPF(const char *path, struct stat *buff)
765  {return StatPF(path, buff, 0);} // Backward compat
766 
767 //-----------------------------------------------------------------------------
779 //-----------------------------------------------------------------------------
780 
781 virtual int StatVS(XrdOssVSInfo *vsP, const char *sname=0, int updt=0);
782 
783 //-----------------------------------------------------------------------------
796 //-----------------------------------------------------------------------------
797 
798 virtual int StatXA(const char *path, char *buff, int &blen,
799  XrdOucEnv *envP=0);
800 
801 //-----------------------------------------------------------------------------
809 //-----------------------------------------------------------------------------
810 
811 virtual int StatXP(const char *path, unsigned long long &attr,
812  XrdOucEnv *envP=0);
813 
814 //-----------------------------------------------------------------------------
822 //-----------------------------------------------------------------------------
823 
824 virtual int Truncate(const char *path, unsigned long long fsize,
825  XrdOucEnv *envP=0)=0;
826 
827 //-----------------------------------------------------------------------------
838 //-----------------------------------------------------------------------------
839 
840 virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *envP=0)=0;
841 
842  // Default Name-to-Name Methods
843 
844 //-----------------------------------------------------------------------------
852 //-----------------------------------------------------------------------------
853 
854 virtual int Lfn2Pfn(const char *Path, char *buff, int blen)
855  {if ((int)strlen(Path) >= blen) return -ENAMETOOLONG;
856  strcpy(buff, Path); return 0;
857  }
858 
859 //-----------------------------------------------------------------------------
869 //-----------------------------------------------------------------------------
870 virtual
871 const char *Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
872  { (void)buff; (void)blen; rc = 0; return Path;}
873 
874 //-----------------------------------------------------------------------------
876 //-----------------------------------------------------------------------------
877 
878  XrdOss() {}
879 virtual ~XrdOss() {}
880 };
881 
882 /******************************************************************************/
883 /* 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 */
884 /******************************************************************************/
885 
886 //------------------------------------------------------------------------------
909 //------------------------------------------------------------------------------
910 
911 //------------------------------------------------------------------------------
913 //------------------------------------------------------------------------------
914 
915 typedef XrdOss *(*XrdOssGetStorageSystem_t) (XrdOss *native_oss,
916  XrdSysLogger *Logger,
917  const char *config_fn,
918  const char *parms);
919 
920 typedef XrdOss *(*XrdOssGetStorageSystem2_t)(XrdOss *native_oss,
921  XrdSysLogger *Logger,
922  const char *config_fn,
923  const char *parms,
924  XrdOucEnv *envP);
925 
927 
959 //------------------------------------------------------------------------------
965 //------------------------------------------------------------------------------
966 
972 #endif
XrdOss::~XrdOss
virtual ~XrdOss()
Definition: XrdOss.hh:879
XrdOssDF::XrdOssDF
XrdOssDF(const char *tid="", uint16_t dftype=0, int fdnum=-1)
Definition: XrdOss.hh:437
XrdOss::Truncate
virtual int Truncate(const char *path, unsigned long long fsize, XrdOucEnv *envP=0)=0
XrdOss
Definition: XrdOss.hh:488
XrdOssDF::getFD
virtual int getFD()
Definition: XrdOss.hh:419
XrdOssDF::Fchmod
virtual int Fchmod(mode_t mode)
Definition: XrdOss.hh:117
XrdOssDF::WriteV
virtual ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt)
XrdOss::Init
virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
Definition: XrdOss.hh:608
XrdOss::Reloc
virtual int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
XrdOss::StatXP
virtual int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *envP=0)
XrdOssDF::Fstat
virtual int Fstat(struct stat *buf)
Definition: XrdOss.hh:133
XrdOss::Mkdir
virtual int Mkdir(const char *path, mode_t mode, int mkpath=0, XrdOucEnv *envP=0)=0
XrdOss::Rename
virtual int Rename(const char *oPath, const char *nPath, XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)=0
XrdOssDF::Verify
static const uint64_t Verify
all: Verify checksums
Definition: XrdOss.hh:220
XrdOss::Unlink
virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *envP=0)=0
XrdOssDF::Write
virtual ssize_t Write(const void *buffer, off_t offset, size_t size)
Definition: XrdOss.hh:346
XrdOssDF::pgRead
virtual ssize_t pgRead(void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts)
XrdOss::Features
virtual uint64_t Features()
XrdOssDF::DF_isProxy
static const uint16_t DF_isProxy
Object is a proxy object.
Definition: XrdOss.hh:395
XrdOssDF::rsvd
short rsvd
Definition: XrdOss.hh:450
XrdOssDF::DF_isDir
static const uint16_t DF_isDir
Object is for a directory.
Definition: XrdOss.hh:393
XrdOssDF::~XrdOssDF
virtual ~XrdOssDF()
Definition: XrdOss.hh:441
XrdOssDF::Ftruncate
virtual int Ftruncate(unsigned long long)
Definition: XrdOss.hh:161
XrdOss::Remdir
virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *envP=0)=0
XrdOssDF
Definition: XrdOss.hh:62
XrdOssDF::Fsync
virtual int Fsync()
Definition: XrdOss.hh:141
XrdOssDF::Readdir
virtual int Readdir(char *buff, int blen)
Definition: XrdOss.hh:91
XrdOss::newFile
virtual XrdOssDF * newFile(const char *tident)=0
XrdOss::PF_isLFN
static const int PF_isLFN
Definition: XrdOss.hh:760
XrdOssVSInfo
Definition: XrdOssVS.hh:88
XrdOss::StatPF
virtual int StatPF(const char *path, struct stat *buff)
Definition: XrdOss.hh:764
XrdOssDF::ReadRaw
virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
Definition: XrdOss.hh:320
XrdOss::StatVS
virtual int StatVS(XrdOssVSInfo *vsP, const char *sname=0, int updt=0)
XrdOucIOVec
Definition: XrdOucIOVec.hh:41
XrdOss::Stats
virtual int Stats(char *buff, int blen)
Definition: XrdOss.hh:693
XrdOssDF::pgWrite
virtual int pgWrite(XrdSfsAio *aoiparm, uint64_t opts)
XrdOssDF::Close
virtual int Close(long long *retsz=0)=0
XrdOss::PF_dInfo
static const int PF_dInfo
Definition: XrdOss.hh:758
XrdOssDF::Fsync
virtual int Fsync(XrdSfsAio *aiop)
Definition: XrdOss.hh:151
XrdOss::Disc
virtual void Disc(XrdOucEnv &env)
XrdOss::FSctl
virtual int FSctl(int cms, int alen, const char *args, char **resp=0)
XrdOssDF::fd
int fd
Definition: XrdOss.hh:448
XrdOssDF::DF_isFile
static const uint16_t DF_isFile
Object is for a file.
Definition: XrdOss.hh:394
XrdOss::Create
virtual int Create(const char *, const char *, mode_t, XrdOucEnv &, int opts=0)=0
XrdOssDF::isCompressed
virtual int isCompressed(char *cxidp=0)
Definition: XrdOss.hh:184
XrdOucEnv
Definition: XrdOucEnv.hh:42
XrdOucIOVec.hh
XrdOssAddStorageSystem2_t
XrdOssGetStorageSystem2_t XrdOssAddStorageSystem2_t
Definition: XrdOss.hh:926
XrdOssDF::Flush
virtual void Flush()
Flush filesystem cached pages for this file (used for checksums).
Definition: XrdOss.hh:123
XrdOss::Chmod
virtual int Chmod(const char *path, mode_t mode, XrdOucEnv *envP=0)=0
XrdOss::StatXA
virtual int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
XrdOss::PF_dNums
static const int PF_dNums
Definition: XrdOss.hh:759
XrdOssVS.hh
XrdSysLogger
Definition: XrdSysLogger.hh:53
XrdOss::XrdOss
XrdOss()
Constructor and Destructor.
Definition: XrdOss.hh:878
XrdOss::Lfn2Pfn
virtual int Lfn2Pfn(const char *Path, char *buff, int blen)
Definition: XrdOss.hh:854
XrdOssDF::DFType
uint16_t DFType()
Definition: XrdOss.hh:397
XrdOssDF::doCalc
static const uint64_t doCalc
pgw: Calculate checksums
Definition: XrdOss.hh:222
XrdOss::Stat
virtual int Stat(const char *path, struct stat *buff, int opts=0, XrdOucEnv *envP=0)=0
XrdOssDF::getTID
virtual const char * getTID()
Definition: XrdOss.hh:427
XrdOssDF::pgRead
virtual int pgRead(XrdSfsAio *aioparm, uint64_t opts)
XrdOss::StatLS
virtual int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen)
XrdOssDF::Read
virtual ssize_t Read(off_t offset, size_t size)
Definition: XrdOss.hh:282
XrdOssDF::getMmap
virtual off_t getMmap(void **addr)
Definition: XrdOss.hh:173
XrdOssDF::Opendir
virtual int Opendir(const char *path, XrdOucEnv &env)
Definition: XrdOss.hh:78
XrdOssDF::pgWrite
virtual ssize_t pgWrite(void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts)
XrdOssDF::Fctl
virtual int Fctl(int cmd, int alen, const char *args, char **resp=0)
XrdOss::StatPF
virtual int StatPF(const char *path, struct stat *buff, int opts)
XrdOssDF::Read
virtual int Read(XrdSfsAio *aoip)
Definition: XrdOss.hh:307
XrdSfsAio
Definition: XrdSfsAio.hh:59
XrdOssDF::StatRet
virtual int StatRet(struct stat *)
Definition: XrdOss.hh:104
stat
#define stat(a, b)
Definition: XrdPosix.hh:96
XrdOssDF::ReadV
virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt)
XrdOss::Connect
virtual void Connect(XrdOucEnv &env)
XrdOssDF::Read
virtual ssize_t Read(void *buffer, off_t offset, size_t size)
Definition: XrdOss.hh:295
XrdOssDF::Write
virtual int Write(XrdSfsAio *aiop)
Definition: XrdOss.hh:358
XrdOss::newDir
virtual XrdOssDF * newDir(const char *tident)=0
XrdOssDF::dfType
uint16_t dfType
Definition: XrdOss.hh:449
XrdOssGetStorageSystem2_t
XrdOss *(* XrdOssGetStorageSystem2_t)(XrdOss *native_oss, XrdSysLogger *Logger, const char *config_fn, const char *parms, XrdOucEnv *envP)
Definition: XrdOss.hh:920
XrdOss::Init
virtual int Init(XrdSysLogger *lp, const char *cfn)=0
XrdOss::StatFS
virtual int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
XrdOssDF::tident
const char * tident
Definition: XrdOss.hh:446
XrdOssDF::Open
virtual int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env)
Definition: XrdOss.hh:197
XrdOss::EnvInfo
virtual void EnvInfo(XrdOucEnv *envP)
XrdOss::Lfn2Pfn
virtual const char * Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
Definition: XrdOss.hh:871
XrdOssDF::pgwEOF
off_t pgwEOF
Definition: XrdOss.hh:447