XRootD
Loading...
Searching...
No Matches
XrdOssStatsDirectory.hh
Go to the documentation of this file.
1
2#ifndef __XRDSTATS_DIRECTORY_H
3#define __XRDSTATS_DIRECTORY_H
4
5#include "XrdOuc/XrdOucEnv.hh"
9
10#include <memory>
11
12namespace XrdOssStats {
13
14class Directory : public XrdOssWrapDF {
15public:
16 Directory(std::unique_ptr<XrdOssDF> ossDF, XrdSysError &log, FileSystem &oss) :
17 XrdOssWrapDF(*ossDF),
18 m_wrappedDir(std::move(ossDF)),
19 m_log(log),
20 m_oss(oss)
21 {
22 }
23
24 virtual ~Directory() {}
25
26 virtual int
27 Opendir(const char *path,
28 XrdOucEnv &env) override
29 {
30 FileSystem::OpTimer op(m_oss.m_ops.m_dirlist_ops, m_oss.m_slow_ops.m_dirlist_ops, m_oss.m_times.m_dirlist, m_oss.m_slow_times.m_dirlist, m_oss.m_slow_duration);
31 return wrapDF.Opendir(path, env);
32 }
33
34 int Readdir(char *buff, int blen) override
35 {
36 FileSystem::OpTimer op(m_oss.m_ops.m_dirlist_entries, m_oss.m_slow_ops.m_dirlist_entries, m_oss.m_times.m_dirlist, m_oss.m_slow_times.m_dirlist, m_oss.m_slow_duration);
37 return wrapDF.Readdir(buff, blen);
38 }
39
40
41private:
42 std::unique_ptr<XrdOssDF> m_wrappedDir;
43 XrdSysError m_log;
44 FileSystem &m_oss;
45};
46
47} // namespace XrdOssStats
48
49#endif // __XRDSTATS_DIRECTORY_H
virtual int Opendir(const char *path, XrdOucEnv &env)
Definition XrdOss.hh:79
virtual int Readdir(char *buff, int blen)
Definition XrdOss.hh:92
Directory(std::unique_ptr< XrdOssDF > ossDF, XrdSysError &log, FileSystem &oss)
virtual int Opendir(const char *path, XrdOucEnv &env) override
int Readdir(char *buff, int blen) override
XrdOssDF & wrapDF