XRootD
StatsFileSystem Class Reference

#include <XrdOssStatsFileSystem.hh>

+ Inheritance diagram for StatsFileSystem:
+ Collaboration diagram for StatsFileSystem:

Public Member Functions

 StatsFileSystem (XrdOss *oss, XrdSysLogger *log, const char *configName, XrdOucEnv *envP)
 
virtual ~StatsFileSystem ()
 
int Chmod (const char *path, mode_t mode, XrdOucEnv *env=0) override
 
bool Config (const char *configfn)
 
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 StatsDirectory
 
class StatsFile
 

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 18 of file XrdOssStatsFileSystem.hh.

Constructor & Destructor Documentation

◆ StatsFileSystem()

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

Definition at line 14 of file XrdOssStatsFileSystem.cc.

14  :
15  XrdOssWrapper(*oss),
16  m_oss(oss),
17  m_env(envP),
18  m_log(lp, "fsstat_"),
19  m_slow_duration(std::chrono::seconds(1))
20 {
21  m_log.Say("------ Initializing the storage statistics plugin.");
22  if (!Config(configfn)) {
23  throw std::runtime_error("Failed to configure the storage statistics plugin.");
24  }
25  pthread_t tid;
26  int rc;
27  if ((rc = XrdSysThread::Run(&tid, StatsFileSystem::AggregateBootstrap, static_cast<void *>(this), 0, "FS Stats Compute Thread"))) {
28  m_log.Emsg("StatsFileSystem", rc, "create stats compute thread");
29  throw std::runtime_error("Failed to create the statistics computing thread.");
30  }
31 
32  // While the plugin _does_ print its activity to the debugging facility (if enabled), its relatively useless
33  // unless the g-stream is available. Hence, if it's _not_ available, we should fail to startup.
34  if (envP) {
35  m_gstream = reinterpret_cast<XrdXrootdGStream*>(envP->GetPtr("oss.gStream*"));
36  if (m_gstream) {
37  m_log.Say("Config", "Stats monitoring has been configured via xrootd.mongstream directive");
38  } else {
39  throw std::runtime_error("XrdOssStats plugin is loaded but it requires the oss monitoring g-stream to also be enabled to be set; try adding `xrootd.mongstream oss ...` to your configuration");
40  }
41  } else {
42  throw std::runtime_error("XrdOssStats plugin invoked without a configured environment; likely an internal error");
43  }
44 }
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:

◆ ~StatsFileSystem()

StatsFileSystem::~StatsFileSystem ( )
virtual

Definition at line 46 of file XrdOssStatsFileSystem.cc.

46 {}

Member Function Documentation

◆ Chmod()

int StatsFileSystem::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 118 of file XrdOssStatsFileSystem.cc.

119 {
120  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);
121  return wrapPI.Chmod(path, mode, env);
122 }
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 StatsFileSystem::Config ( const char *  configfn)

Definition at line 59 of file XrdOssStatsFileSystem.cc.

60 {
62 
63  XrdOucGatherConf statsConf("fsstats.trace fsstats.slowop", &m_log);
64  int result;
65  if ((result = statsConf.Gather(configfn, XrdOucGatherConf::trim_lines)) < 0) {
66  m_log.Emsg("Config", -result, "parsing config file", configfn);
67  return false;
68  }
69 
70  char *val;
71  while (statsConf.GetLine()) {
72  val = statsConf.GetToken(); // Ignore -- we asked for a single value
73  if (!strcmp(val, "trace")) {
74  m_log.setMsgMask(0);
75  if (!(val = statsConf.GetToken())) {
76  m_log.Emsg("Config", "fsstats.trace requires an argument. Usage: fsstats.trace [all|err|warning|info|debug|none]");
77  return false;
78  }
79  do {
80  if (!strcmp(val, "all")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::All);}
81  else if (!strcmp(val, "error")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::Error);}
82  else if (!strcmp(val, "warning")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::Error | LogMask::Warning);}
83  else if (!strcmp(val, "info")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::Error | LogMask::Warning | LogMask::Info);}
84  else if (!strcmp(val, "debug")) {m_log.setMsgMask(m_log.getMsgMask() | LogMask::Error | LogMask::Warning | LogMask::Info | LogMask::Debug);}
85  else if (!strcmp(val, "none")) {m_log.setMsgMask(0);}
86  } while ((val = statsConf.GetToken()));
87  } else if (!strcmp(val, "slowop")) {
88  if (!(val = statsConf.GetToken())) {
89  m_log.Emsg("Config", "fsstats.slowop requires an argument. Usage: fsstats.slowop [duration]");
90  return false;
91  }
92  std::string errmsg;
93  if (!ParseDuration(val, m_slow_duration, errmsg)) {
94  m_log.Emsg("Config", "fsstats.slowop couldn't parse duration", val, errmsg.c_str());
95  return false;
96  }
97  }
98  }
99  m_log.Emsg("Config", "Logging levels enabled", LogMaskToString(m_log.getMsgMask()).c_str());
100 
101  return true;
102 }
bool ParseDuration(const std::string &duration, std::chrono::steady_clock::duration &result, std::string &errmsg)
std::string LogMaskToString(int mask)
@ Info
@ Warning
@ trim_lines
Prefix trimmed lines.
void setMsgMask(int mask)
Definition: XrdSysError.hh:154
int getMsgMask()
Definition: XrdSysError.hh:156

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

Referenced by StatsFileSystem().

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

◆ newDir()

XrdOssDF * StatsFileSystem::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 104 of file XrdOssStatsFileSystem.cc.

105 {
106  // Call the underlying OSS newDir
107  std::unique_ptr<XrdOssDF> wrapped(wrapPI.newDir(user));
108  return new StatsDirectory(std::move(wrapped), m_log, *this);
109 }
friend class StatsDirectory
virtual XrdOssDF * newDir(const char *tident)=0

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

+ Here is the call graph for this function:

◆ newFile()

XrdOssDF * StatsFileSystem::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 111 of file XrdOssStatsFileSystem.cc.

112 {
113  // Call the underlying OSS newFile
114  std::unique_ptr<XrdOssDF> wrapped(wrapPI.newFile(user));
115  return new StatsFile(std::move(wrapped), m_log, *this);
116 }
virtual XrdOssDF * newFile(const char *tident)=0

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

+ Here is the call graph for this function:

◆ Rename()

int StatsFileSystem::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 124 of file XrdOssStatsFileSystem.cc.

126 {
127  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);
128  return wrapPI.Rename(oPath, nPath, oEnvP, nEnvP);
129 }
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 StatsFileSystem::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 131 of file XrdOssStatsFileSystem.cc.

133 {
134  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);
135  return wrapPI.Stat(path, buff, opts, env);
136 }
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 StatsFileSystem::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 138 of file XrdOssStatsFileSystem.cc.

140 {
141  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);
142  return wrapPI.StatFS(path, buff, blen, env);
143 }
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 StatsFileSystem::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 145 of file XrdOssStatsFileSystem.cc.

147 {
148  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);
149  return wrapPI.StatLS(env, path, buff, blen);
150 }
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 StatsFileSystem::StatPF ( const char *  path,
struct stat buff 
)
overridevirtual

Reimplemented from XrdOssWrapper.

Definition at line 158 of file XrdOssStatsFileSystem.cc.

159 {
160  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);
161  return wrapPI.StatPF(path, buff, 0);
162 }
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 StatsFileSystem::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 152 of file XrdOssStatsFileSystem.cc.

153 {
154  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);
155  return wrapPI.StatPF(path, buff, opts);
156 }

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

+ Here is the call graph for this function:

◆ StatVS()

int StatsFileSystem::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 164 of file XrdOssStatsFileSystem.cc.

165 {
166  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);
167  return wrapPI.StatVS(vsP, sname, updt);
168 }
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 StatsFileSystem::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 170 of file XrdOssStatsFileSystem.cc.

172 {
173  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);
174  return wrapPI.StatXA(path, buff, blen, env);
175 }
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 StatsFileSystem::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 177 of file XrdOssStatsFileSystem.cc.

179 {
180  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);
181  return wrapPI.StatXP(path, attr, env);
182 }
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 StatsFileSystem::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 184 of file XrdOssStatsFileSystem.cc.

186 {
187  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);
188  return wrapPI.Truncate(path, fsize, env);
189 }
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 StatsFileSystem::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 191 of file XrdOssStatsFileSystem.cc.

192 {
193  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);
194  return wrapPI.Unlink(path, Opts, env);
195 }
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

◆ StatsDirectory

friend class StatsDirectory
friend

Definition at line 20 of file XrdOssStatsFileSystem.hh.

Referenced by newDir().

◆ StatsFile

friend class StatsFile
friend

Definition at line 19 of file XrdOssStatsFileSystem.hh.

Referenced by newFile().


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