40 #include <unordered_map>
64 virtual int Readdir(
char *buff,
int blen) ;
70 std::string skipprefixname_;
79 virtual int Close(
long long *retsz=0) ;
82 virtual off_t
getMmap(
void **addr) {
if (addr) *addr = 0;
return 0; }
83 virtual int getFD() {
return -1; }
85 virtual void Flush() ;
89 virtual int Ftruncate(
unsigned long long) ;
91 virtual ssize_t
Read(off_t,
size_t) ;
92 virtual ssize_t
Read(
void *, off_t,
size_t) ;
94 virtual ssize_t
ReadRaw(
void *, off_t,
size_t) ;
97 virtual ssize_t
Write(
const void *, off_t,
size_t) ;
101 virtual ssize_t
pgRead (
void*, off_t,
size_t, uint32_t*, uint64_t) ;
103 virtual ssize_t
pgWrite(
void*, off_t,
size_t, uint32_t*, uint64_t) ;
108 rdonly_(false), aioCntCond_(0), aioCnt_(0), aioCntWaiters_(0) { }
114 while(aioCntWaiters_>0)
123 if (--aioCnt_ == 0 && aioCntWaiters_>0)
141 return pmi_->pages.get();
147 std::unique_ptr<XrdOssCsiPages>
pages;
157 static void mapTake(
const std::string &, std::shared_ptr<puMapItem_t> &,
bool create=
true);
160 static std::unordered_map<std::string, std::shared_ptr<puMapItem_t> >
pumap_;
165 std::shared_ptr<puMapItem_t> pmi_;
172 int pageAndFileOpen(
const char *,
const int,
const int,
const mode_t,
XrdOucEnv &);
193 virtual int Rename(
const char *oldname,
const char *newname,
195 virtual int Truncate(
const char *path,
unsigned long long size,
197 virtual int Reloc(
const char *
tident,
const char *path,
198 const char *cgName,
const char *anchor=0) ;
200 virtual int Create(
const char *
tident,
const char *path, mode_t access_mode,
204 virtual int Stat(
const char *path,
struct stat *buff,
int opts=0,
206 virtual int StatPF(
const char *path,
struct stat *buff,
int opts) ;
208 virtual int StatXA(
const char *path,
char *buff,
int &blen,
224 const char *config_fn,
XrdOss * XrdOssAddStorageSystem2(XrdOss *curr_oss, XrdSysLogger *Logger, const char *config_fn, const char *parms, XrdOucEnv *envP)
int stat(const char *path, struct stat *buf)
virtual int Opendir(const char *path, XrdOucEnv &env)
virtual int Readdir(char *buff, int blen)
XrdOssCsiDir(XrdOss *parent, const char *tid, XrdOssCsiConfig &cf)
virtual ssize_t pgWrite(void *, off_t, size_t, uint32_t *, uint64_t)
virtual ssize_t Write(const void *, off_t, size_t)
virtual int Ftruncate(unsigned long long)
virtual off_t getMmap(void **addr)
virtual ssize_t pgRead(void *, off_t, size_t, uint32_t *, uint64_t)
virtual ssize_t ReadV(XrdOucIOVec *readV, int n)
virtual ssize_t Read(off_t, size_t)
virtual int Open(const char *, int, mode_t, XrdOucEnv &)
XrdOssCsiFile(XrdOss *parent, const char *tid, XrdOssCsiConfig &cf)
virtual int Close(long long *retsz=0)
virtual void Flush()
Flush filesystem cached pages for this file (used for checksums).
static XrdSysMutex pumtx_
virtual int Fstat(struct stat *)
static std::unordered_map< std::string, std::shared_ptr< puMapItem_t > > pumap_
virtual ssize_t ReadRaw(void *, off_t, size_t)
virtual ssize_t WriteV(XrdOucIOVec *writeV, int n)
static void mapTake(const std::string &, std::shared_ptr< puMapItem_t > &, bool create=true)
static int mapRelease(std::shared_ptr< puMapItem_t > &, XrdSysMutexHelper *plck=NULL)
virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *eP=0)
virtual uint64_t Features()
virtual int Stat(const char *path, struct stat *buff, int opts=0, XrdOucEnv *EnvP=0)
static std::unique_ptr< XrdOucEnv > tagOpenEnv(const XrdOssCsiConfig &, XrdOucEnv &)
virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *eP=0)
virtual int StatPF(const char *path, struct stat *buff)
virtual int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
virtual int Init(XrdSysLogger *lp, const char *cfn)
virtual XrdOssDF * newFile(const char *tident)
virtual int Mkdir(const char *path, mode_t mode, int mkpath=0, XrdOucEnv *envP=0)
virtual int Chmod(const char *path, mode_t mode, XrdOucEnv *envP=0)
virtual int Create(const char *tident, const char *path, mode_t access_mode, XrdOucEnv &env, int Opts=0)
virtual int Truncate(const char *path, unsigned long long size, XrdOucEnv *envP=0)
virtual int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
static XrdScheduler * Sched_
virtual int StatPF(const char *path, struct stat *buff, int opts)
virtual int Rename(const char *oldname, const char *newname, XrdOucEnv *old_env=0, XrdOucEnv *new_env=0)
virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
virtual XrdOssDF * newDir(const char *tident)
XrdOssCsi(XrdOss *successor)
virtual uint64_t Features()
std::unique_ptr< XrdOssCsiPages > pages