XRootD
XrdOssStats::FileSystem Class Reference

#include <XrdOssStatsFileSystem.hh>

+ Inheritance diagram for XrdOssStats::FileSystem:
+ Collaboration diagram for XrdOssStats::FileSystem:

Public Member Functions

 FileSystem (XrdOss *oss, XrdSysLogger *log, const char *configName, XrdOucEnv *envP)
 
virtual ~FileSystem ()
 
int Chmod (const char *path, mode_t mode, XrdOucEnv *env=0) override
 
bool Config (const char *configfn)
 
bool InitSuccessful (std::string &errMsg)
 
XrdOssDFnewDir (const char *user=0) override
 
XrdOssDFnewFile (const char *user=0) override
 
int Rename (const char *oPath, const char *nPath, XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0) override
 
int Stat (const char *path, struct stat *buff, int opts=0, XrdOucEnv *env=0) override
 
int StatFS (const char *path, char *buff, int &blen, XrdOucEnv *env=0) override
 
int StatLS (XrdOucEnv &env, const char *path, char *buff, int &blen) override
 
int StatPF (const char *path, struct stat *buff) override
 
int StatPF (const char *path, struct stat *buff, int opts) override
 
int StatVS (XrdOssVSInfo *vsP, const char *sname=0, int updt=0) override
 
int StatXA (const char *path, char *buff, int &blen, XrdOucEnv *env=0) override
 
int StatXP (const char *path, unsigned long long &attr, XrdOucEnv *env=0) override
 
int Truncate (const char *path, unsigned long long fsize, XrdOucEnv *env=0) override
 
int Unlink (const char *path, int Opts=0, XrdOucEnv *env=0) override
 
- Public Member Functions inherited from XrdOssWrapper
 XrdOssWrapper (XrdOss &ossRef)
 
virtual ~XrdOssWrapper ()
 
virtual void Connect (XrdOucEnv &env)
 
virtual int Create (const char *tid, const char *path, mode_t mode, XrdOucEnv &env, int opts=0)
 
virtual void Disc (XrdOucEnv &env)
 
virtual void EnvInfo (XrdOucEnv *envP)
 
virtual uint64_t Features ()
 
virtual int FSctl (int cmd, int alen, const char *args, char **resp=0)
 
virtual int Init (XrdSysLogger *lp, const char *cfn)
 
virtual int Init (XrdSysLogger *lp, const char *cfn, XrdOucEnv *envP)
 
virtual int Lfn2Pfn (const char *Path, char *buff, int blen)
 
virtual const char * Lfn2Pfn (const char *Path, char *buff, int blen, int &rc)
 
virtual int Mkdir (const char *path, mode_t mode, int mkpath=0, XrdOucEnv *envP=0)
 
virtual int Reloc (const char *tident, const char *path, const char *cgName, const char *anchor=0)
 
virtual int Remdir (const char *path, int Opts=0, XrdOucEnv *envP=0)
 
virtual int Stats (char *buff, int blen)
 
- Public Member Functions inherited from XrdOss
 XrdOss ()
 Constructor and Destructor. More...
 
virtual ~XrdOss ()
 

Friends

class Directory
 
class File
 

Additional Inherited Members

- Static Public Attributes inherited from XrdOss
static const int PF_csVer = 0x00000001
 verified file checksums present More...
 
static const int PF_csVun = 0x00000002
 unverified file checksums present More...
 
static const int PF_dInfo = 0x00000001
 
static const int PF_dNums = 0x00000002
 
static const int PF_dStat = 0x00000008
 
static const int PF_isLFN = 0x00000004
 
- Protected Attributes inherited from XrdOssWrapper
XrdOsswrapPI
 

Detailed Description

Definition at line 22 of file XrdOssStatsFileSystem.hh.

Constructor & Destructor Documentation

◆ FileSystem()

FileSystem::FileSystem ( XrdOss oss,
XrdSysLogger log,
const char *  configName,
XrdOucEnv envP 
)

Definition at line 17 of file XrdOssStatsFileSystem.cc.

17  :
18  XrdOssWrapper(*oss),
19  m_oss(oss),
20  m_env(envP),
21  m_log(lp, "fsstat_"),
22  m_slow_duration(std::chrono::seconds(1))
23 {
24  m_log.Say("------ Initializing the storage statistics plugin.");
25  if (!Config(configfn)) {
26  m_failure = "Failed to configure the storage statistics plugin.";
27  return;
28  }
29 
30  // While the plugin _does_ print its activity to the debugging facility (if enabled), its relatively useless
31  // unless the g-stream is available. Hence, if it's _not_ available, we stop the OSS initialization but do
32  // not cause the server startup to fail.
33  if (envP) {
34  m_gstream = reinterpret_cast<XrdXrootdGStream*>(envP->GetPtr("oss.gStream*"));
35  if (m_gstream) {
36  m_log.Say("Config", "Stats monitoring has been configured via xrootd.mongstream directive");
37  } else {
38  m_log.Say("Config", "XrdOssStats plugin is loaded but it requires the oss monitoring g-stream to also be enabled to be useful; try adding `xrootd.mongstream oss ...` to your configuration");
39  return;
40  }
41  } else {
42  m_failure = "XrdOssStats plugin invoked without a configured environment; likely an internal error";
43  return;
44  }
45 
46  pthread_t tid;
47  int rc;
48  if ((rc = XrdSysThread::Run(&tid, FileSystem::AggregateBootstrap, static_cast<void *>(this), 0, "FS Stats Compute Thread"))) {
49  m_log.Emsg("FileSystem", rc, "create stats compute thread");
50  m_failure = "Failed to create the statistics computing thread.";
51  return;
52  }
53 
54  m_ready = true;
55 }
bool Config(const char *configfn)
XrdOssWrapper(XrdOss &ossRef)
void * GetPtr(const char *varname)
Definition: XrdOucEnv.cc:281
int Emsg(const char *esfx, int ecode, const char *text1, const char *text2=0)
Definition: XrdSysError.cc:95
void Say(const char *text1, const char *text2=0, const char *txt3=0, const char *text4=0, const char *text5=0, const char *txt6=0)
Definition: XrdSysError.cc:141
static int Run(pthread_t *, void *(*proc)(void *), void *arg, int opts=0, const char *desc=0)
XrdOucEnv * envP
Definition: XrdPss.cc:109

References Config(), XrdSysError::Emsg(), XrdProxy::envP, XrdOucEnv::GetPtr(), XrdSysThread::Run(), and XrdSysError::Say().

+ Here is the call graph for this function:

◆ ~FileSystem()

FileSystem::~FileSystem ( )
virtual

Definition at line 57 of file XrdOssStatsFileSystem.cc.

57 {}

Member Function Documentation

◆ Chmod()

int FileSystem::Chmod ( const char *  path,
mode_t  mode,
XrdOucEnv envP = 0 
)
overridevirtual

Change file mode settings.

Parameters
path- Pointer to the path of the file in question.
mode- The new file mode setting.
envP- Pointer to environmental information.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssWrapper.

Definition at line 140 of file XrdOssStatsFileSystem.cc.

141 {
142  OpTimer op(m_ops.m_chmod_ops, m_slow_ops.m_chmod_ops, m_times.m_chmod, m_slow_times.m_chmod, m_slow_duration);
143  return wrapPI.Chmod(path, mode, env);
144 }
virtual int Chmod(const char *path, mode_t mode, XrdOucEnv *envP=0)=0

References XrdOss::Chmod(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ Config()

bool FileSystem::Config ( const char *  configfn)

Definition at line 81 of file XrdOssStatsFileSystem.cc.

82 {
84 
85  XrdOucGatherConf statsConf("fsstats.trace fsstats.slowop", &m_log);
86  int result;
87  if ((result = statsConf.Gather(configfn, XrdOucGatherConf::trim_lines)) < 0) {
88  m_log.Emsg("Config", -result, "parsing config file", configfn);
89  return false;
90  }
91 
92  char *val;
93  while (statsConf.GetLine()) {
94  val = statsConf.GetToken(); // Ignore -- we asked for a single value
95  if (!strcmp(val, "trace")) {
96  m_log.setMsgMask(0);
97  if (!(val = statsConf.GetToken())) {
98  m_log.Emsg("Config", "fsstats.trace requires an argument. Usage: fsstats.trace [all|err|warning|info|debug|none]");
99  return false;
100  }
101  do {
102  if (!strcmp(val, "all")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::All);}
103  else if (!strcmp(val, "error")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::Error);}
104  else if (!strcmp(val, "warning")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::Error | LogMask::Warning);}
105  else if (!strcmp(val, "info")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::Error | LogMask::Warning | LogMask::Info);}
106  else if (!strcmp(val, "debug")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::Error | LogMask::Warning | LogMask::Info | LogMask::Debug);}
107  else if (!strcmp(val, "none")) {m_log.setMsgMask(0);}
108  } while ((val = statsConf.GetToken()));
109  } else if (!strcmp(val, "slowop")) {
110  if (!(val = statsConf.GetToken())) {
111  m_log.Emsg("Config", "fsstats.slowop requires an argument. Usage: fsstats.slowop [duration]");
112  return false;
113  }
114  std::string errmsg;
115  if (!ParseDuration(val, m_slow_duration, errmsg)) {
116  m_log.Emsg("Config", "fsstats.slowop couldn't parse duration", val, errmsg.c_str());
117  return false;
118  }
119  }
120  }
121  m_log.Emsg("Config", "Logging levels enabled", LogMaskToString(m_log.getMsgMask()).c_str());
122 
123  return true;
124 }
bool Debug
@ Error
@ trim_lines
Prefix trimmed lines.
void setMsgMask(int mask)
Definition: XrdSysError.hh:154
int getMsgMask()
Definition: XrdSysError.hh:156
bool ParseDuration(const std::string &duration, std::chrono::steady_clock::duration &result, std::string &errmsg)
std::string LogMaskToString(int mask)

References Debug, XrdSysError::Emsg(), Error, XrdOucGatherConf::Gather(), XrdOucGatherConf::GetLine(), XrdSysError::getMsgMask(), XrdOucGatherConf::GetToken(), Macaroons::Info, XrdOssStats::detail::LogMaskToString(), XrdOssStats::detail::ParseDuration(), XrdSysError::setMsgMask(), XrdOucGatherConf::trim_lines, and Macaroons::Warning.

Referenced by FileSystem().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InitSuccessful()

bool FileSystem::InitSuccessful ( std::string &  errMsg)

Definition at line 60 of file XrdOssStatsFileSystem.cc.

60  {
61  if (m_ready) return true;
62 
63  errMsg = m_failure;
64  if (errMsg.empty()) {
65  m_oss.release();
66  }
67  return false;
68 }

◆ newDir()

XrdOssDF * FileSystem::newDir ( const char *  tident = 0)
overridevirtual

Obtain a new director object to be used for future directory requests.

Parameters
tident- The trace identifier.
Returns
pointer- Pointer to a possibly wrapped XrdOssDF object.
nil - Insufficient memory to allocate an object.

Reimplemented from XrdOssWrapper.

Definition at line 126 of file XrdOssStatsFileSystem.cc.

127 {
128  // Call the underlying OSS newDir
129  std::unique_ptr<XrdOssDF> wrapped(wrapPI.newDir(user));
130  return new Directory(std::move(wrapped), m_log, *this);
131 }
virtual XrdOssDF * newDir(const char *tident)=0

References Directory, XrdOss::newDir(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ newFile()

XrdOssDF * FileSystem::newFile ( const char *  tident = 0)
overridevirtual

Obtain a new file object to be used for a future file requests.

Parameters
tident- The trace identifier.
Returns
pointer- Pointer to a possibly wrapped XrdOssDF object.
nil - Insufficient memory to allocate an object.

Reimplemented from XrdOssWrapper.

Definition at line 133 of file XrdOssStatsFileSystem.cc.

134 {
135  // Call the underlying OSS newFile
136  std::unique_ptr<XrdOssDF> wrapped(wrapPI.newFile(user));
137  return new File(std::move(wrapped), m_log, *this);
138 }
virtual XrdOssDF * newFile(const char *tident)=0

References File, XrdOss::newFile(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ Rename()

int FileSystem::Rename ( const char *  oPath,
const char *  nPath,
XrdOucEnv oEnvP = 0,
XrdOucEnv nEnvP = 0 
)
overridevirtual

Rename a file or directory.

Parameters
oPath- Pointer to the path to be renamed.
nPath- Pointer to the path oPath is to have.
oEnvP- Environmental information for oPath.
nEnvP- Environmental information for nPath.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssWrapper.

Definition at line 146 of file XrdOssStatsFileSystem.cc.

148 {
149  OpTimer op(m_ops.m_rename_ops, m_slow_ops.m_rename_ops, m_times.m_rename, m_slow_times.m_rename, m_slow_duration);
150  return wrapPI.Rename(oPath, nPath, oEnvP, nEnvP);
151 }
virtual int Rename(const char *oPath, const char *nPath, XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)=0

References XrdOss::Rename(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ Stat()

int FileSystem::Stat ( const char *  path,
struct stat buff,
int  opts = 0,
XrdOucEnv envP = 0 
)
overridevirtual

Return state information on a file or directory.

Parameters
path- Pointer to the path in question.
buff- Pointer to the structure where info it to be returned.
opts- Options: XRDOSS_preop - this is a stat prior to open. XRDOSS_resonly - only look for resident files. XRDOSS_updtatm - update file access time.
envP- Pointer to environmental information.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssWrapper.

Definition at line 153 of file XrdOssStatsFileSystem.cc.

155 {
156  OpTimer op(m_ops.m_stat_ops, m_slow_ops.m_stat_ops, m_times.m_stat, m_slow_times.m_stat, m_slow_duration);
157  return wrapPI.Stat(path, buff, opts, env);
158 }
struct myOpts opts
virtual int Stat(const char *path, struct stat *buff, int opts=0, XrdOucEnv *envP=0)=0

References opts, XrdOss::Stat(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ StatFS()

int FileSystem::StatFS ( const char *  path,
char *  buff,
int &  blen,
XrdOucEnv envP = 0 
)
overridevirtual

Return filesystem physical space information associated with a path.

Parameters
path- Path in the partition in question.
buff- Pointer to the buffer to hold the information.
blen- Length of the buffer. This is updated with the actual number of bytes placed in the buffer as in snprintf().
envP- Pointer to environmental information.
Returns
"<wval> <fsp> <utl> <sval> <fsp> <utl>" where: <wval> is "0" if XRDEXP_NOTRW specified, otherwise "1" <fsp> is free space in megabytes. <utl> is percentage utilization (i.e. allocated space) <sval> is "1' if XRDEXP_STAGE specified, otherwise "0" Upon failure -errno or -osserr (see XrdOssError.hh) returned.

Reimplemented from XrdOssWrapper.

Definition at line 160 of file XrdOssStatsFileSystem.cc.

162 {
163  OpTimer op(m_ops.m_stat_ops, m_slow_ops.m_stat_ops, m_times.m_stat, m_slow_times.m_stat, m_slow_duration);
164  return wrapPI.StatFS(path, buff, blen, env);
165 }
virtual int StatFS(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
Definition: XrdOss.cc:87

References XrdOss::StatFS(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ StatLS()

int FileSystem::StatLS ( XrdOucEnv env,
const char *  path,
char *  buff,
int &  blen 
)
overridevirtual

Return filesystem physical space information associated with a space name.

Parameters
env- Ref to environmental information. If the environment has the key oss.cgroup defined, the associated value is used as the space name and the path is ignored.
path- Path in the name space in question. The space name associated with gthe path is used unless overridden.
buff- Pointer to the buffer to hold the information.
blen- Length of the buffer. This is updated with the actual number of bytes placed in the buffer as in snprintf().
Returns
"oss.cgroup=<name>&oss.space=<totbytes>&oss.free=<freebytes> &oss.maxf=<maxcontigbytes>&oss.used=<bytesused> &oss.quota=<quotabytes>" in buff upon success. Upon failure -errno or -osserr (see XrdOssError.hh) returned.

Reimplemented from XrdOssWrapper.

Definition at line 167 of file XrdOssStatsFileSystem.cc.

169 {
170  OpTimer op(m_ops.m_stat_ops, m_slow_ops.m_stat_ops, m_times.m_stat, m_slow_times.m_stat, m_slow_duration);
171  return wrapPI.StatLS(env, path, buff, blen);
172 }
virtual int StatLS(XrdOucEnv &env, const char *path, char *buff, int &blen)
Definition: XrdOss.cc:97

References XrdOss::StatLS(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ StatPF() [1/2]

int FileSystem::StatPF ( const char *  path,
struct stat buff 
)
overridevirtual

Reimplemented from XrdOssWrapper.

Definition at line 180 of file XrdOssStatsFileSystem.cc.

181 {
182  OpTimer op(m_ops.m_stat_ops, m_slow_ops.m_stat_ops, m_times.m_stat, m_slow_times.m_stat, m_slow_duration);
183  return wrapPI.StatPF(path, buff, 0);
184 }
virtual int StatPF(const char *path, struct stat *buff, int opts)
Definition: XrdOss.cc:107

References XrdOss::StatPF(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ StatPF() [2/2]

int FileSystem::StatPF ( const char *  path,
struct stat buff,
int  opts 
)
overridevirtual

Return state information on a resident physical file or directory.

Parameters
path- Pointer to the path in question.
buff- Pointer to the structure where info it to be returned.
opts- Options: PF_dInfo - provide bdevID in st_rdev and partID in st_dev based on path. If path is nil then the contents of the of buff is used as the input source. PF_dNums - provide number of bdev's in st_rdev and the number of partitions in st_dev. The path argument is ignored. This superceeds PF_dInfo. PF_dStat - provide file state flags in st_rdev as shown below. Path may not be nil. This supercedes PF_dInfo and PF_dNums. PF_isLFN - Do N2N translation on path (default is none).
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssWrapper.

Definition at line 174 of file XrdOssStatsFileSystem.cc.

175 {
176  OpTimer op(m_ops.m_stat_ops, m_slow_ops.m_stat_ops, m_times.m_stat, m_slow_times.m_stat, m_slow_duration);
177  return wrapPI.StatPF(path, buff, opts);
178 }

References opts, XrdOss::StatPF(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ StatVS()

int FileSystem::StatVS ( XrdOssVSInfo vsP,
const char *  sname = 0,
int  updt = 0 
)
overridevirtual

Return space information for a space name.

Parameters
vsP- Pointer to the XrdOssVSInfo object to hold results. It should be fully initialized (i.e. a new copy).
sname- Pointer to the space name. If the name starts with a plus (e.g. "+public"), partition information is returned, should it exist. If nil, space information for all spaces is returned. See, XrdOssVS.hh for more info.
updt- When true, a space update occurrs prior to a query.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssWrapper.

Definition at line 186 of file XrdOssStatsFileSystem.cc.

187 {
188  OpTimer op(m_ops.m_stat_ops, m_slow_ops.m_stat_ops, m_times.m_stat, m_slow_times.m_stat, m_slow_duration);
189  return wrapPI.StatVS(vsP, sname, updt);
190 }
virtual int StatVS(XrdOssVSInfo *vsP, const char *sname=0, int updt=0)
Definition: XrdOss.cc:117

References XrdOss::StatVS(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ StatXA()

int FileSystem::StatXA ( const char *  path,
char *  buff,
int &  blen,
XrdOucEnv envP = 0 
)
overridevirtual

Return logical extended attributes associated with a path.

Parameters
path- Path in whose information is wanted.
buff- Pointer to the buffer to hold the information.
blen- Length of the buffer. This is updated with the actual number of bytes placed in the buffer as in snprintf().
envP- Pointer to environmental information.
Returns
"oss.cgroup=<name>&oss.type={'f'|'d'|'o'}&oss.used=<totbytes> &oss.mt=<mtime>&oss.ct=<ctime>&oss.at=<atime>&oss.u=*&oss.g=* &oss.fs={'w'|'r'}" Upon failure -errno or -osserr (see XrdOssError.hh) returned.

Reimplemented from XrdOssWrapper.

Definition at line 192 of file XrdOssStatsFileSystem.cc.

194 {
195  OpTimer op(m_ops.m_stat_ops, m_slow_ops.m_stat_ops, m_times.m_stat, m_slow_times.m_stat, m_slow_duration);
196  return wrapPI.StatXA(path, buff, blen, env);
197 }
virtual int StatXA(const char *path, char *buff, int &blen, XrdOucEnv *envP=0)
Definition: XrdOss.cc:127

References XrdOss::StatXA(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ StatXP()

int FileSystem::StatXP ( const char *  path,
unsigned long long &  attr,
XrdOucEnv envP = 0 
)
overridevirtual

Return export attributes associated with a path.

Parameters
path- Path in whose information is wanted.
attr- Reference to where the inforamation is to be stored.
envP- Pointer to environmental information.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssWrapper.

Definition at line 199 of file XrdOssStatsFileSystem.cc.

201 {
202  OpTimer op(m_ops.m_stat_ops, m_slow_ops.m_stat_ops, m_times.m_stat, m_slow_times.m_stat, m_slow_duration);
203  return wrapPI.StatXP(path, attr, env);
204 }
virtual int StatXP(const char *path, unsigned long long &attr, XrdOucEnv *envP=0)
Definition: XrdOss.cc:137

References XrdOss::StatXP(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ Truncate()

int FileSystem::Truncate ( const char *  path,
unsigned long long  fsize,
XrdOucEnv envP = 0 
)
overridevirtual

Truncate a file.

Parameters
path- Pointer to the path of the file to be truncated.
fsize- The size that the file is to have.
envP- Pointer to environmental information.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssWrapper.

Definition at line 206 of file XrdOssStatsFileSystem.cc.

208 {
209  OpTimer op(m_ops.m_truncate_ops, m_slow_ops.m_truncate_ops, m_times.m_truncate, m_slow_times.m_truncate, m_slow_duration);
210  return wrapPI.Truncate(path, fsize, env);
211 }
virtual int Truncate(const char *path, unsigned long long fsize, XrdOucEnv *envP=0)=0

References XrdOss::Truncate(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

◆ Unlink()

int FileSystem::Unlink ( const char *  path,
int  Opts = 0,
XrdOucEnv envP = 0 
)
overridevirtual

Remove a file.

Parameters
path- Pointer to the path of the file to be removed.
Opts- Options: XRDOSS_isMIG - this is a migratable path. XRDOSS_isPFN - do not apply name2name to path. XRDOSS_Online - remove only the online copy.
envP- Pointer to environmental information.
Returns
0 upon success or -errno or -osserr (see XrdOssError.hh).

Reimplemented from XrdOssWrapper.

Definition at line 213 of file XrdOssStatsFileSystem.cc.

214 {
215  OpTimer op(m_ops.m_unlink_ops, m_slow_ops.m_unlink_ops, m_times.m_unlink, m_slow_times.m_unlink, m_slow_duration);
216  return wrapPI.Unlink(path, Opts, env);
217 }
virtual int Unlink(const char *path, int Opts=0, XrdOucEnv *envP=0)=0
int Opts
Definition: XrdMpxStats.cc:58

References XrdMpx::Opts, XrdOss::Unlink(), and XrdOssWrapper::wrapPI.

+ Here is the call graph for this function:

Friends And Related Function Documentation

◆ Directory

friend class Directory
friend

Definition at line 24 of file XrdOssStatsFileSystem.hh.

Referenced by newDir().

◆ File

friend class File
friend

Definition at line 23 of file XrdOssStatsFileSystem.hh.

Referenced by newFile().


The documentation for this class was generated from the following files: