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