40#include <unordered_map>
64virtual int Readdir(
char *buff,
int blen) ;
79virtual int Close(
long long *retsz=0) ;
82virtual off_t
getMmap(
void **addr) {
if (addr) *addr = 0;
return 0; }
83virtual int getFD() {
return -1; }
91virtual ssize_t
Read(off_t,
size_t) ;
92virtual ssize_t
Read(
void *, off_t,
size_t) ;
94virtual ssize_t
ReadRaw(
void *, off_t,
size_t) ;
97virtual ssize_t
Write(
const void *, off_t,
size_t) ;
101virtual ssize_t
pgRead (
void*, off_t,
size_t, uint32_t*, uint64_t) ;
103virtual ssize_t
pgWrite(
void*, off_t,
size_t, uint32_t*, uint64_t) ;
141 return pmi_->pages.get();
147 std::unique_ptr<XrdOssCsiPages>
pages;
157static void mapTake(
const std::string &, std::shared_ptr<puMapItem_t> &,
bool create=
true);
160static std::unordered_map<std::string, std::shared_ptr<puMapItem_t> >
pumap_;
165 std::shared_ptr<puMapItem_t>
pmi_;
193virtual int Rename(
const char *oldname,
const char *newname,
195virtual int Truncate(
const char *path,
unsigned long long size,
197virtual int Reloc(
const char *tident,
const char *path,
198 const char *cgName,
const char *anchor=0) ;
199virtual int Mkdir(
const char *path, mode_t mode,
int mkpath=0,
XrdOucEnv *envP=0) ;
200virtual int Create(
const char *tident,
const char *path, mode_t access_mode,
204virtual int Stat(
const char *path,
struct stat *buff,
int opts=0,
206virtual int StatPF(
const char *path,
struct stat *buff,
int opts) ;
208virtual 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)
#define XRDOSS_HASFSCS
Definition XrdOss.hh:476
#define XRDOSS_HASPGRW
Definition XrdOss.hh:475
#define stat(a, b)
Definition XrdPosix.hh:96
Definition XrdOssCsiConfig.hh:162
Definition XrdOssCsi.hh:57
XrdOssCsiConfig & config_
Definition XrdOssCsi.hh:67
std::string skipprefixname_
Definition XrdOssCsi.hh:70
XrdOssCsiDir(XrdOss *parent, const char *tid, XrdOssCsiConfig &cf)
Definition XrdOssCsi.hh:60
virtual int Opendir(const char *path, XrdOucEnv &env)
bool skipprefix_
Definition XrdOssCsi.hh:69
virtual ~XrdOssCsiDir()
Definition XrdOssCsi.hh:61
bool skipsuffix_
Definition XrdOssCsi.hh:68
virtual int Readdir(char *buff, int blen)
Definition XrdOssCsiFileAio.hh:43
Definition XrdOssCsi.hh:47
XrdOssCsiFileAioStore()
Definition XrdOssCsi.hh:49
XrdOssCsiFileAio * list_
Definition XrdOssCsi.hh:53
std::mutex mtx_
Definition XrdOssCsi.hh:52
Definition XrdOssCsiFileAio.hh:110
Definition XrdOssCsi.hh:74
int aioCntWaiters_
Definition XrdOssCsi.hh:177
int pageAndFileOpen(const char *, const int, const int, const mode_t, XrdOucEnv &)
virtual int pgRead(XrdSfsAio *, uint64_t)
XrdOssCsiPages * Pages()
Definition XrdOssCsi.hh:140
static void mapTake(const std::string &, std::shared_ptr< puMapItem_t > &, bool create=true)
virtual off_t getMmap(void **addr)
Definition XrdOssCsi.hh:82
virtual ssize_t Write(const void *, off_t, size_t)
virtual int Write(XrdSfsAio *)
virtual int Close(long long *retsz=0)
virtual ssize_t WriteV(XrdOucIOVec *writeV, int n)
std::shared_ptr< puMapItem_t > pmi_
Definition XrdOssCsi.hh:165
void aioInc()
Definition XrdOssCsi.hh:111
XrdOssCsiFile(XrdOss *parent, const char *tid, XrdOssCsiConfig &cf)
Definition XrdOssCsi.hh:106
virtual ssize_t Read(off_t, size_t)
const char * tident
Definition XrdOssCsi.hh:164
int aioCnt_
Definition XrdOssCsi.hh:176
virtual int Read(XrdSfsAio *)
virtual int pgWrite(XrdSfsAio *, uint64_t)
XrdOssCsiFileAioStore aiostore_
Definition XrdOssCsi.hh:166
static int mapRelease(std::shared_ptr< puMapItem_t > &, XrdSysMutexHelper *plck=NULL)
static XrdSysMutex pumtx_
Definition XrdOssCsi.hh:159
virtual int Fsync(XrdSfsAio *)
virtual int Ftruncate(unsigned long long)
XrdOssCsiConfig & config_
Definition XrdOssCsi.hh:167
virtual int getFD()
Definition XrdOssCsi.hh:83
bool rdonly_
Definition XrdOssCsi.hh:168
virtual ssize_t pgWrite(void *, off_t, size_t, uint32_t *, uint64_t)
XrdOss * parentOss_
Definition XrdOssCsi.hh:163
virtual ssize_t ReadV(XrdOucIOVec *readV, int n)
virtual int Open(const char *, int, mode_t, XrdOucEnv &)
virtual ssize_t pgRead(void *, off_t, size_t, uint32_t *, uint64_t)
void aioWait()
Definition XrdOssCsi.hh:126
virtual int Fstat(struct stat *)
static std::unordered_map< std::string, std::shared_ptr< puMapItem_t > > pumap_
Definition XrdOssCsi.hh:160
XrdSysCondVar aioCntCond_
Definition XrdOssCsi.hh:175
int createPageUpdater(int, XrdOucEnv &)
virtual void Flush()
Flush filesystem cached pages for this file (used for checksums).
virtual ssize_t ReadRaw(void *, off_t, size_t)
virtual ssize_t Read(void *, off_t, size_t)
void aioDec()
Definition XrdOssCsi.hh:120
Definition XrdOssCsiPages.hh:47
Definition XrdOssCsi.hh:181
virtual uint64_t Features()
Definition XrdOssCsi.hh:190
virtual int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
virtual int Mkdir(const char *path, mode_t mode, int mkpath=0, XrdOucEnv *envP=0)
virtual XrdOssDF * newDir(const char *tident)
virtual int StatPF(const char *path, struct stat *buff)
Definition XrdOssCsi.hh:207
static std::unique_ptr< XrdOucEnv > tagOpenEnv(const XrdOssCsiConfig &, XrdOucEnv &)
XrdOssCsiConfig config_
Definition XrdOssCsi.hh:219
virtual int Init(XrdSysLogger *lp, const char *cfn)
Definition XrdOssCsi.hh:186
virtual int Stat(const char *path, struct stat *buff, int opts=0, XrdOucEnv *EnvP=0)
int Init(XrdSysLogger *, const char *, const char *, XrdOucEnv *)
virtual int Truncate(const char *path, unsigned long long size, XrdOucEnv *envP=0)
virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *eP=0)
virtual int Remdir(const char *path, int Opts=0, XrdOucEnv *eP=0)
virtual int Chmod(const char *path, mode_t mode, XrdOucEnv *envP=0)
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 ~XrdOssCsi()
Definition XrdOssCsi.hh:212
virtual XrdOssDF * newFile(const char *tident)
virtual int Init(XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
Definition XrdOssCsi.hh:187
virtual int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
virtual int Create(const char *tident, const char *path, mode_t access_mode, XrdOucEnv &env, int Opts=0)
XrdOssCsi(XrdOss *successor)
Definition XrdOssCsi.hh:211
static XrdScheduler * Sched_
Definition XrdOssCsi.hh:216
Definition XrdOssHandler.hh:41
Definition XrdOssHandler.hh:84
XrdOss * successor_
Definition XrdOssHandler.hh:141
virtual uint64_t Features()
Definition XrdOucEnv.hh:42
Definition XrdScheduler.hh:46
Definition XrdSfsAio.hh:59
Definition XrdSysPthread.hh:129
Definition XrdSysPthread.hh:79
void Broadcast()
Definition XrdSysPthread.hh:89
Definition XrdSysLogger.hh:53
Definition XrdSysPthread.hh:263
Definition XrdSysPthread.hh:165
Definition XrdOssCsi.hh:144
XrdSysMutex mtx
Definition XrdOssCsi.hh:146
puMapItem_t()
Definition XrdOssCsi.hh:152
std::string dpath
Definition XrdOssCsi.hh:148
int refcount
Definition XrdOssCsi.hh:145
bool unlinked
Definition XrdOssCsi.hh:150
std::unique_ptr< XrdOssCsiPages > pages
Definition XrdOssCsi.hh:147
std::string tpath
Definition XrdOssCsi.hh:149
Definition XrdOucIOVec.hh:41