XRootD
Loading...
Searching...
No Matches
XrdOssWrapper.hh
Go to the documentation of this file.
1#ifndef _XRDOSSWRAPPER_H
2#define _XRDOSSWRAPPER_H
3/******************************************************************************/
4/* */
5/* X r d O s s W r a p p e r . h h */
6/* */
7/* (c) 2020 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 "XrdOss/XrdOss.hh"
34
35/******************************************************************************/
42/******************************************************************************/
43
44/******************************************************************************/
45/* C l a s s X r d O s s W r a p D F */
46/******************************************************************************/
47
51
52class XrdOssWrapDF : public XrdOssDF
53{
54public:
55
56/******************************************************************************/
57/* D i r e c t o r y O r i e n t e d M e t h o d s */
58/******************************************************************************/
59
60//-----------------------------------------------------------------------------
67//-----------------------------------------------------------------------------
68
69virtual int Opendir(const char *path, XrdOucEnv &env)
70 {return wrapDF.Opendir(path, env);}
71
72//-----------------------------------------------------------------------------
81//-----------------------------------------------------------------------------
82
83virtual int Readdir(char *buff, int blen)
84 {return wrapDF.Readdir(buff, blen);}
85
86//-----------------------------------------------------------------------------
95//-----------------------------------------------------------------------------
96
97virtual int StatRet(struct stat *Stat) {return wrapDF.StatRet(Stat);}
98
99/******************************************************************************/
100/* F i l e O r i e n t e d M e t h o d s */
101/******************************************************************************/
102
103//-----------------------------------------------------------------------------
110//-----------------------------------------------------------------------------
111
112virtual int Clone(XrdOssDF& srcFile) {return wrapDF.Clone(srcFile);}
113
114//-----------------------------------------------------------------------------
120//-----------------------------------------------------------------------------
121
122virtual int Clone(const std::vector<XrdOucCloneSeg> &cVec)
123 {return wrapDF.Clone(cVec);}
124
125//-----------------------------------------------------------------------------
131//-----------------------------------------------------------------------------
132
133virtual int Fchmod(mode_t mode) {return wrapDF.Fchmod(mode);}
134
135//-----------------------------------------------------------------------------
137//-----------------------------------------------------------------------------
138
139virtual void Flush() {wrapDF.Flush();}
140
141//-----------------------------------------------------------------------------
147//-----------------------------------------------------------------------------
148
149virtual int Fstat(struct stat *buf) {return wrapDF.Fstat(buf);}
150
151//-----------------------------------------------------------------------------
155//-----------------------------------------------------------------------------
156
157virtual int Fsync() {return wrapDF.Fsync();}
158
159//-----------------------------------------------------------------------------
165//-----------------------------------------------------------------------------
166
167virtual int Fsync(XrdSfsAio *aiop) {return wrapDF.Fsync(aiop);}
168
169//-----------------------------------------------------------------------------
175//-----------------------------------------------------------------------------
176
177virtual int Ftruncate(unsigned long long flen)
178 {return wrapDF.Ftruncate(flen);}
179
180//-----------------------------------------------------------------------------
188//-----------------------------------------------------------------------------
189
190virtual off_t getMmap(void **addr) {return wrapDF.getMmap(addr);}
191
192//-----------------------------------------------------------------------------
199//-----------------------------------------------------------------------------
200
201virtual int isCompressed(char *cxidp=0) {return wrapDF.isCompressed(cxidp);}
202
203//-----------------------------------------------------------------------------
212//-----------------------------------------------------------------------------
213
214virtual int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env)
215 {return wrapDF.Open(path, Oflag, Mode, env);}
216
217//-----------------------------------------------------------------------------
232//-----------------------------------------------------------------------------
233
234virtual ssize_t pgRead (void* buffer, off_t offset, size_t rdlen,
235 uint32_t* csvec, uint64_t opts)
236 {return wrapDF.pgRead(buffer,offset,rdlen,csvec,opts);}
237
238//-----------------------------------------------------------------------------
246//-----------------------------------------------------------------------------
247
248virtual int pgRead (XrdSfsAio* aioparm, uint64_t opts)
249 {return wrapDF.pgRead(aioparm, opts);}
250
251//-----------------------------------------------------------------------------
268//-----------------------------------------------------------------------------
269
270virtual ssize_t pgWrite(void* buffer, off_t offset, size_t wrlen,
271 uint32_t* csvec, uint64_t opts)
272 {return wrapDF.pgWrite(buffer,offset,wrlen,csvec,opts);}
273
274//-----------------------------------------------------------------------------
282//-----------------------------------------------------------------------------
283
284virtual int pgWrite(XrdSfsAio* aioparm, uint64_t opts)
285 {return wrapDF.pgWrite(aioparm, opts);}
286
287//-----------------------------------------------------------------------------
294//-----------------------------------------------------------------------------
295
296virtual ssize_t Read(off_t offset, size_t size)
297 {return wrapDF.Read(offset, size);}
298
299//-----------------------------------------------------------------------------
306//-----------------------------------------------------------------------------
307
308virtual ssize_t Read(XrdOucRangeList& rlist)
309 {return wrapDF.Read(rlist);}
310
311//-----------------------------------------------------------------------------
320//-----------------------------------------------------------------------------
321
322virtual ssize_t Read(void *buffer, off_t offset, size_t size)
323 {return wrapDF.Read(buffer, offset, size);}
324
325//-----------------------------------------------------------------------------
332//-----------------------------------------------------------------------------
333
334virtual int Read(XrdSfsAio *aiop) {return wrapDF.Read(aiop);}
335
336//-----------------------------------------------------------------------------
345//-----------------------------------------------------------------------------
346
347virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
348 {return wrapDF.ReadRaw(buffer, offset, size);}
349
350//-----------------------------------------------------------------------------
358//-----------------------------------------------------------------------------
359
360virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt)
361 {return wrapDF.ReadV(readV, rdvcnt);}
362
363//-----------------------------------------------------------------------------
372//-----------------------------------------------------------------------------
373
374virtual ssize_t Write(const void *buffer, off_t offset, size_t size)
375 {return wrapDF.Write(buffer, offset, size);}
376
377//-----------------------------------------------------------------------------
384//-----------------------------------------------------------------------------
385
386virtual int Write(XrdSfsAio *aiop) {return wrapDF.Write(aiop);}
387
388//-----------------------------------------------------------------------------
396//-----------------------------------------------------------------------------
397
398virtual ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt)
399 {return wrapDF.WriteV(writeV, wrvcnt);}
400
401/******************************************************************************/
402/* 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 */
403/******************************************************************************/
404//-----------------------------------------------------------------------------
410//-----------------------------------------------------------------------------
411
412virtual int Close(long long *retsz=0) {return wrapDF.Close(retsz);}
413
414//-----------------------------------------------------------------------------
418//-----------------------------------------------------------------------------
419
420uint16_t DFType() {return wrapDF.DFType();}
421
422//-----------------------------------------------------------------------------
440//-----------------------------------------------------------------------------
441
442virtual int Fctl(int cmd, int alen, const char *args, char **resp=0)
443 {return wrapDF.Fctl(cmd, alen, args, resp);}
444
445//-----------------------------------------------------------------------------
456//-----------------------------------------------------------------------------
457
458virtual bool getErrMsg(std::string& eText) {return wrapDF.getErrMsg(eText);}
459
460//-----------------------------------------------------------------------------
464//-----------------------------------------------------------------------------
465
466virtual int getFD() {return wrapDF.getFD();}
467
468//-----------------------------------------------------------------------------
472//-----------------------------------------------------------------------------
473virtual
474const char *getTID() {return wrapDF.getTID();}
475
476//-----------------------------------------------------------------------------
483//-----------------------------------------------------------------------------
484
485 XrdOssWrapDF(XrdOssDF &df2Wrap) : wrapDF(df2Wrap) {}
486
487virtual ~XrdOssWrapDF() {}
488
489
490protected:
491
492XrdOssDF &wrapDF; // Object being wrapped
493};
494
495/******************************************************************************/
496/* C l a s s X r d O s s W r a p p e r */
497/******************************************************************************/
498
499class XrdOssWrapper : public XrdOss
500{
501public:
502
503//-----------------------------------------------------------------------------
510//-----------------------------------------------------------------------------
511
512virtual XrdOssDF *newDir(const char *tident)
513 {return wrapPI.newDir(tident);}
514
515//-----------------------------------------------------------------------------
522//-----------------------------------------------------------------------------
523
524virtual XrdOssDF *newFile(const char *tident)
525 {return wrapPI.newFile(tident);}
526
527//-----------------------------------------------------------------------------
535//-----------------------------------------------------------------------------
536
537virtual int Chmod(const char * path, mode_t mode, XrdOucEnv *envP=0)
538 {return wrapPI.Chmod(path, mode, envP);}
539
540//-----------------------------------------------------------------------------
544//-----------------------------------------------------------------------------
545
546virtual void Connect(XrdOucEnv &env) {wrapPI.Connect(env);}
547
548//-----------------------------------------------------------------------------
561//-----------------------------------------------------------------------------
562
563virtual int Create(const char *tid, const char *path, mode_t mode,
564 XrdOucEnv &env, int opts=0)
565 {return wrapPI.Create(tid, path, mode, env, opts);}
566
567//-----------------------------------------------------------------------------
571//-----------------------------------------------------------------------------
572
573virtual void Disc(XrdOucEnv &env) {wrapPI.Disc(env);}
574
575//-----------------------------------------------------------------------------
579//-----------------------------------------------------------------------------
580
581virtual void EnvInfo(XrdOucEnv *envP) {wrapPI.EnvInfo(envP);}
582
583//-----------------------------------------------------------------------------
587//-----------------------------------------------------------------------------
588
589virtual uint64_t Features() {return wrapPI.Features();}
590
591//-----------------------------------------------------------------------------
602//-----------------------------------------------------------------------------
603
604virtual bool getErrMsg(std::string& eText)
605 {return wrapPI.getErrMsg(eText);}
606
607//-----------------------------------------------------------------------------
617//-----------------------------------------------------------------------------
618
619virtual int FSctl(int cmd, int alen, const char *args, char **resp=0)
620 {return wrapPI.FSctl(cmd, alen, args, resp);}
621
622//-----------------------------------------------------------------------------
629//-----------------------------------------------------------------------------
630
631virtual int Init(XrdSysLogger *lp, const char *cfn)
632 {return wrapPI.Init(lp, cfn);}
633
634//-----------------------------------------------------------------------------
642//-----------------------------------------------------------------------------
643
644virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
645 {return wrapPI.Init(lp, cfn, envP);}
646
647//-----------------------------------------------------------------------------
656//-----------------------------------------------------------------------------
657
658virtual int Mkdir(const char *path, mode_t mode, int mkpath=0,
659 XrdOucEnv *envP=0)
660 {return wrapPI.Mkdir(path, mode, mkpath, envP);}
661
662//-----------------------------------------------------------------------------
671//-----------------------------------------------------------------------------
672
673virtual int Reloc(const char *tident, const char *path,
674 const char *cgName, const char *anchor=0)
675 {return wrapPI.Reloc(tident,path,cgName,anchor);}
676
677//-----------------------------------------------------------------------------
687//-----------------------------------------------------------------------------
688
689virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *envP=0)
690 {return wrapPI.Remdir(path, Opts, envP);}
691
692//-----------------------------------------------------------------------------
701//-----------------------------------------------------------------------------
702
703virtual int Rename(const char *oPath, const char *nPath,
704 XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)
705 {return wrapPI.Rename(oPath, nPath, oEnvP, nEnvP);}
706
707//-----------------------------------------------------------------------------
719//-----------------------------------------------------------------------------
720
721virtual int Stat(const char *path, struct stat *buff,
722 int opts=0, XrdOucEnv *envP=0)
723 {return wrapPI.Stat(path, buff, opts, envP);}
724
725//-----------------------------------------------------------------------------
732//-----------------------------------------------------------------------------
733
734virtual int Stats(char *buff, int blen)
735 {return wrapPI.Stats(buff, blen);}
736
737//-----------------------------------------------------------------------------
752//-----------------------------------------------------------------------------
753
754virtual int StatFS(const char *path, char *buff, int &blen,
755 XrdOucEnv *envP=0)
756 {return wrapPI.StatFS(path, buff, blen, envP);}
757
758//-----------------------------------------------------------------------------
774//-----------------------------------------------------------------------------
775
776virtual int StatLS(XrdOucEnv &env, const char *path,
777 char *buff, int &blen)
778 {return wrapPI.StatLS(env, path, buff, blen);}
779
780//-----------------------------------------------------------------------------
798//-----------------------------------------------------------------------------
799
800virtual int StatPF(const char *path, struct stat *buff, int opts)
801 {return wrapPI.StatPF(path, buff, opts);}
802
803virtual int StatPF(const char *path, struct stat *buff)
804 {return wrapPI.StatPF(path, buff);}
805
806//-----------------------------------------------------------------------------
818//-----------------------------------------------------------------------------
819
820virtual int StatVS(XrdOssVSInfo *vsP, const char *sname=0, int updt=0)
821 {return wrapPI.StatVS(vsP, sname, updt);}
822
823//-----------------------------------------------------------------------------
836//-----------------------------------------------------------------------------
837
838virtual int StatXA(const char *path, char *buff, int &blen,
839 XrdOucEnv *envP=0)
840 {return wrapPI.StatXA(path, buff, blen, envP);}
841
842//-----------------------------------------------------------------------------
850//-----------------------------------------------------------------------------
851
852virtual int StatXP(const char *path, unsigned long long &attr,
853 XrdOucEnv *envP=0)
854 {return wrapPI.StatXP(path, attr, envP);}
855
856//-----------------------------------------------------------------------------
864//-----------------------------------------------------------------------------
865
866virtual int Truncate(const char *path, unsigned long long fsize,
867 XrdOucEnv *envP=0)
868 {return wrapPI.Truncate(path, fsize, envP);}
869
870//-----------------------------------------------------------------------------
881//-----------------------------------------------------------------------------
882
883virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *envP=0)
884 {return wrapPI.Unlink(path, Opts, envP);}
885
886 // Default Name-to-Name Methods
887
888//-----------------------------------------------------------------------------
896//-----------------------------------------------------------------------------
897
898virtual int Lfn2Pfn(const char *Path, char *buff, int blen)
899 {return wrapPI.Lfn2Pfn(Path, buff, blen);}
900
901//-----------------------------------------------------------------------------
911//-----------------------------------------------------------------------------
912virtual
913const char *Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
914 {return wrapPI.Lfn2Pfn(Path, buff, blen, rc);}
915
916//-----------------------------------------------------------------------------
923//-----------------------------------------------------------------------------
924
925 XrdOssWrapper(XrdOss &ossRef) : wrapPI(ossRef) {}
926virtual ~XrdOssWrapper() {}
927
928protected:
929
931};
932#endif
#define tident
struct stat Stat
Definition XrdCks.cc:49
std::vector< XrdOucRange > XrdOucRangeList
#define stat(a, b)
Definition XrdPosix.hh:101
int Mode
XrdOucString Path
struct myOpts opts
XrdOssDF(const char *tid="", uint16_t dftype=0, int fdnum=-1)
Definition XrdOss.hh:504
virtual int Readdir(char *buff, int blen)
virtual int Fsync(XrdSfsAio *aiop)
virtual int pgRead(XrdSfsAio *aioparm, uint64_t opts)
virtual int StatRet(struct stat *Stat)
virtual int Clone(const std::vector< XrdOucCloneSeg > &cVec)
virtual int Fchmod(mode_t mode)
virtual int getFD()
virtual int Fsync()
virtual int Read(XrdSfsAio *aiop)
uint16_t DFType()
virtual int Clone(XrdOssDF &srcFile)
virtual ~XrdOssWrapDF()
virtual bool getErrMsg(std::string &eText)
virtual int isCompressed(char *cxidp=0)
virtual ssize_t Read(off_t offset, size_t size)
virtual void Flush()
Flush filesystem cached pages for this file (used for checksums).
virtual int Write(XrdSfsAio *aiop)
virtual const char * getTID()
virtual ssize_t Write(const void *buffer, off_t offset, size_t size)
virtual ssize_t Read(XrdOucRangeList &rlist)
virtual int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env)
virtual int Close(long long *retsz=0)
virtual ssize_t pgRead(void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts)
virtual int Opendir(const char *path, XrdOucEnv &env)
virtual int pgWrite(XrdSfsAio *aioparm, uint64_t opts)
XrdOssDF & wrapDF
virtual ssize_t Read(void *buffer, off_t offset, size_t size)
virtual ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt)
virtual int Fstat(struct stat *buf)
XrdOssWrapDF(XrdOssDF &df2Wrap)
virtual int Ftruncate(unsigned long long flen)
virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
virtual ssize_t pgWrite(void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts)
virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt)
virtual off_t getMmap(void **addr)
virtual int Fctl(int cmd, int alen, const char *args, char **resp=0)
virtual int Mkdir(const char *path, mode_t mode, int mkpath=0, XrdOucEnv *envP=0)
virtual const char * Lfn2Pfn(const char *Path, char *buff, int blen, int &rc)
virtual int StatVS(XrdOssVSInfo *vsP, const char *sname=0, int updt=0)
virtual int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
virtual int Stats(char *buff, int blen)
virtual int Init(XrdSysLogger *lp, const char *cfn)
virtual void Disc(XrdOucEnv &env)
virtual int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen)
virtual void EnvInfo(XrdOucEnv *envP)
XrdOssWrapper(XrdOss &ossRef)
virtual void Connect(XrdOucEnv &env)
virtual int FSctl(int cmd, int alen, const char *args, char **resp=0)
virtual int Chmod(const char *path, mode_t mode, XrdOucEnv *envP=0)
virtual int Lfn2Pfn(const char *Path, char *buff, int blen)
virtual int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *envP=0)
virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *envP=0)
virtual int Create(const char *tid, const char *path, mode_t mode, XrdOucEnv &env, int opts=0)
virtual XrdOssDF * newDir(const char *tident)
virtual int Stat(const char *path, struct stat *buff, int opts=0, XrdOucEnv *envP=0)
virtual int StatPF(const char *path, struct stat *buff)
virtual int StatPF(const char *path, struct stat *buff, int opts)
virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *envP=0)
virtual uint64_t Features()
virtual int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
virtual int Rename(const char *oPath, const char *nPath, XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)
virtual ~XrdOssWrapper()
virtual XrdOssDF * newFile(const char *tident)
virtual bool getErrMsg(std::string &eText)
virtual int Truncate(const char *path, unsigned long long fsize, XrdOucEnv *envP=0)
virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
XrdOss()
Constructor and Destructor.
Definition XrdOss.hh:978