2 #ifndef __XRDOSSSTATS_FILE_H
3 #define __XRDOSSSTATS_FILE_H
20 m_wrapped(std::move(
wrapDF)),
29 FileSystem::OpTimer op(m_oss.m_ops.m_open_ops, m_oss.m_slow_ops.m_open_ops, m_oss.m_times.m_open, m_oss.m_slow_times.m_open, m_oss.m_slow_duration);
35 FileSystem::OpTimer op(m_oss.m_ops.m_chmod_ops, m_oss.m_slow_ops.m_chmod_ops, m_oss.m_times.m_chmod, m_oss.m_slow_times.m_chmod, m_oss.m_slow_duration);
41 FileSystem::OpTimer op(m_oss.m_ops.m_stat_ops, m_oss.m_slow_ops.m_stat_ops, m_oss.m_times.m_stat, m_oss.m_slow_times.m_stat, m_oss.m_slow_duration);
47 FileSystem::OpTimer op(m_oss.m_ops.m_truncate_ops, m_oss.m_slow_ops.m_truncate_ops, m_oss.m_times.m_truncate, m_oss.m_slow_times.m_truncate, m_oss.m_slow_duration);
51 ssize_t
pgRead (
void* buffer, off_t offset,
size_t rdlen,
52 uint32_t* csvec, uint64_t
opts)
override
54 FileSystem::OpTimer op(m_oss.m_ops.m_pgread_ops, m_oss.m_slow_ops.m_pgread_ops, m_oss.m_times.m_pgread, m_oss.m_slow_times.m_pgread, m_oss.m_slow_duration);
60 FileSystem::OpTimer op(m_oss.m_ops.m_pgread_ops, m_oss.m_slow_ops.m_pgread_ops, m_oss.m_times.m_pgread, m_oss.m_slow_times.m_pgread, m_oss.m_slow_duration);
64 ssize_t
pgWrite(
void* buffer, off_t offset,
size_t wrlen,
65 uint32_t* csvec, uint64_t
opts)
override
67 FileSystem::OpTimer op(m_oss.m_ops.m_pgwrite_ops, m_oss.m_slow_ops.m_pgwrite_ops, m_oss.m_times.m_pgwrite, m_oss.m_slow_times.m_pgwrite, m_oss.m_slow_duration);
73 FileSystem::OpTimer op(m_oss.m_ops.m_pgwrite_ops, m_oss.m_slow_ops.m_pgwrite_ops, m_oss.m_times.m_pgwrite, m_oss.m_slow_times.m_pgwrite, m_oss.m_slow_duration);
77 ssize_t
Read(off_t offset,
size_t size)
override
79 FileSystem::OpTimer op(m_oss.m_ops.m_read_ops, m_oss.m_slow_ops.m_read_ops, m_oss.m_times.m_read, m_oss.m_slow_times.m_read, m_oss.m_slow_duration);
83 ssize_t
Read(
void *buffer, off_t offset,
size_t size)
override
85 FileSystem::OpTimer op(m_oss.m_ops.m_read_ops, m_oss.m_slow_ops.m_read_ops, m_oss.m_times.m_read, m_oss.m_slow_times.m_read, m_oss.m_slow_duration);
91 FileSystem::OpTimer op(m_oss.m_ops.m_read_ops, m_oss.m_slow_ops.m_read_ops, m_oss.m_times.m_read, m_oss.m_slow_times.m_read, m_oss.m_slow_duration);
95 ssize_t
ReadRaw(
void *buffer, off_t offset,
size_t size)
override
97 FileSystem::OpTimer op(m_oss.m_ops.m_read_ops, m_oss.m_slow_ops.m_read_ops, m_oss.m_times.m_read, m_oss.m_slow_times.m_read, m_oss.m_slow_duration);
103 auto start = std::chrono::steady_clock::now();
105 auto dur = std::chrono::steady_clock::now() - start;
106 m_oss.m_ops.m_readv_ops++;
107 m_oss.m_ops.m_readv_segs += rdvcnt;
108 auto ns = std::chrono::nanoseconds(dur).count();
109 m_oss.m_times.m_readv += ns;
110 if (dur > m_oss.m_slow_duration) {
111 m_oss.m_slow_ops.m_readv_ops++;
112 m_oss.m_slow_ops.m_readv_segs += rdvcnt;
113 m_oss.m_times.m_readv += std::chrono::nanoseconds(dur).count();
118 ssize_t
Write(
const void *buffer, off_t offset,
size_t size)
override
120 FileSystem::OpTimer op(m_oss.m_ops.m_write_ops, m_oss.m_slow_ops.m_write_ops, m_oss.m_times.m_write, m_oss.m_slow_times.m_write, m_oss.m_slow_duration);
126 FileSystem::OpTimer op(m_oss.m_ops.m_write_ops, m_oss.m_slow_ops.m_write_ops, m_oss.m_times.m_write, m_oss.m_slow_times.m_write, m_oss.m_slow_duration);
132 FileSystem::OpTimer op(m_oss.m_ops.m_write_ops, m_oss.m_slow_ops.m_write_ops, m_oss.m_times.m_write, m_oss.m_slow_times.m_write, m_oss.m_slow_duration);
137 std::unique_ptr<XrdOssDF> m_wrapped;
int stat(const char *path, struct stat *buf)
virtual ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt)
virtual int Ftruncate(unsigned long long flen)
virtual int Fstat(struct stat *buf)
virtual ssize_t ReadRaw(void *buffer, off_t offset, size_t size)
virtual int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env)
virtual ssize_t Read(off_t offset, size_t size)
virtual int Fchmod(mode_t mode)
virtual ssize_t pgWrite(void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts)
virtual ssize_t pgRead(void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts)
virtual ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt)
virtual ssize_t Write(const void *buffer, off_t offset, size_t size)
int Fchmod(mode_t mode) override
ssize_t Read(void *buffer, off_t offset, size_t size) override
ssize_t pgRead(void *buffer, off_t offset, size_t rdlen, uint32_t *csvec, uint64_t opts) override
int Ftruncate(unsigned long long size) override
ssize_t WriteV(XrdOucIOVec *writeV, int wrvcnt) override
int pgRead(XrdSfsAio *aioparm, uint64_t opts) override
int Fstat(struct stat *buf) override
ssize_t pgWrite(void *buffer, off_t offset, size_t wrlen, uint32_t *csvec, uint64_t opts) override
ssize_t ReadRaw(void *buffer, off_t offset, size_t size) override
ssize_t Write(const void *buffer, off_t offset, size_t size) override
File(std::unique_ptr< XrdOssDF > wrapDF, XrdSysError &log, FileSystem &oss)
int Write(XrdSfsAio *aiop) override
int Open(const char *path, int Oflag, mode_t Mode, XrdOucEnv &env) override
ssize_t Read(off_t offset, size_t size) override
ssize_t ReadV(XrdOucIOVec *readV, int rdvcnt) override
int Read(XrdSfsAio *aiop) override
int pgWrite(XrdSfsAio *aioparm, uint64_t opts) override