xrootd
XrdThrottle.hh
Go to the documentation of this file.
1#ifndef __XRDTHROTTLE_H_
2#define __XRDTHROTTLE_H_
3
4#include <memory>
5#include <string>
6
7#include "XrdVersion.hh"
10
13
14class XrdSysLogger;
15class XrdOucStream;
16
17
18namespace XrdThrottle {
19
20#if __cplusplus >= 201103L
21typedef std::unique_ptr<XrdSfsFile> unique_sfs_ptr;
22#else
23typedef std::auto_ptr<XrdSfsFile> unique_sfs_ptr;
24#endif
25
26class FileSystem;
27
28class File : public XrdSfsFile {
29
30friend class FileSystem;
31
32public:
33
34 virtual int
35 open(const char *fileName,
36 XrdSfsFileOpenMode openMode,
37 mode_t createMode,
38 const XrdSecEntity *client,
39 const char *opaque = 0);
40
41 virtual int
43
44 using XrdSfsFile::fctl;
45 virtual int
46 fctl(const int cmd,
47 const char *args,
48 XrdOucErrInfo &out_error);
49
50 virtual const char *
52
53 virtual int
54 getMmap(void **Addr, off_t &Size);
55
56 virtual int
57 read(XrdSfsFileOffset fileOffset, // Preread only
58 XrdSfsXferSize amount);
59
60 virtual XrdSfsXferSize
62 char *buffer,
63 XrdSfsXferSize buffer_size);
64
65 virtual int
66 read(XrdSfsAio *aioparm);
67
68 virtual XrdSfsXferSize
70 const char *buffer,
71 XrdSfsXferSize buffer_size);
72
73 virtual int
74 write(XrdSfsAio *aioparm);
75
76 virtual int
78
79 virtual int
81
82 virtual int
83 stat(struct stat *buf);
84
85 virtual int
87
88 virtual int
89 getCXinfo(char cxtype[4], int &cxrsz);
90
91 virtual int
93 XrdSfsFileOffset offset,
94 XrdSfsXferSize size);
95
96private:
97 File(const char *user, int monid, unique_sfs_ptr, XrdThrottleManager &throttle, XrdSysError &eroute);
98
99 virtual
101
103 int m_uid; // A unique identifier for this user; has no meaning except for the fairshare.
104 std::string m_loadshed;
105 std::string m_user;
108};
109
111{
112
114
115public:
116
117 virtual XrdSfsDirectory *
118 newDir(char *user=0, int monid=0);
119
120 virtual XrdSfsFile *
121 newFile(char *user=0, int monid=0);
122
123 virtual int
125 const char *csName,
126 const char *path,
127 XrdOucErrInfo &eInfo,
128 const XrdSecEntity *client = 0,
129 const char *opaque = 0);
130
131 virtual int
132 chmod(const char *Name,
133 XrdSfsMode Mode,
134 XrdOucErrInfo &out_error,
135 const XrdSecEntity *client,
136 const char *opaque = 0);
137
138 virtual void
139 Disc(const XrdSecEntity *client = 0);
140
141 virtual void
143
144 virtual int
145 exists(const char *fileName,
146 XrdSfsFileExistence &exists_flag,
147 XrdOucErrInfo &out_error,
148 const XrdSecEntity *client,
149 const char *opaque = 0);
150
151 virtual int
152 fsctl(const int cmd,
153 const char *args,
154 XrdOucErrInfo &out_error,
155 const XrdSecEntity *client);
156
157 virtual int
158 getStats(char *buff, int blen);
159
160 virtual const char *
162
163 virtual int
164 mkdir(const char *dirName,
165 XrdSfsMode Mode,
166 XrdOucErrInfo &out_error,
167 const XrdSecEntity *client,
168 const char *opaque = 0);
169
170 virtual int
172 XrdOucErrInfo &out_error,
173 const XrdSecEntity *client = 0);
174
175 virtual int
176 rem(const char *path,
177 XrdOucErrInfo &out_error,
178 const XrdSecEntity *client,
179 const char *info = 0);
180
181 virtual int
182 remdir(const char *dirName,
183 XrdOucErrInfo &out_error,
184 const XrdSecEntity *client,
185 const char *info = 0);
186
187 virtual int
188 rename(const char *oldFileName,
189 const char *newFileName,
190 XrdOucErrInfo &out_error,
191 const XrdSecEntity *client,
192 const char *infoO = 0,
193 const char *infoN = 0);
194
195 virtual int
196 stat(const char *Name,
197 struct stat *buf,
198 XrdOucErrInfo &out_error,
199 const XrdSecEntity *client,
200 const char *opaque = 0);
201
202 virtual int
203 stat(const char *Name,
204 mode_t &mode,
205 XrdOucErrInfo &out_error,
206 const XrdSecEntity *client,
207 const char *opaque = 0);
208
209 virtual int
210 truncate(const char *Name,
211 XrdSfsFileOffset fileOffset,
212 XrdOucErrInfo &out_error,
213 const XrdSecEntity *client = 0,
214 const char *opaque = 0);
215
216 virtual int
218
219private:
220 static void
222 XrdSfsFileSystem *native_fs,
223 XrdSysLogger *lp,
224 const char *config_file);
225
227
228 virtual
230
231 int
233
234 int
236
237 int
239
243 std::string m_config_file;
247 XrdVersionInfo *myVersion;
248
249};
250
251}
252
253#endif
254
int XrdSfsMode
Definition: XrdSfsInterface.hh:121
XrdSfsFileExistence
Definition: XrdSfsInterface.hh:125
int XrdSfsFileOpenMode
Definition: XrdSfsInterface.hh:120
long long XrdSfsFileOffset
Definition: XrdSfsInterface.hh:119
int XrdSfsXferSize
Definition: XrdSfsInterface.hh:122
Definition: XrdOucEnv.hh:42
Definition: XrdOucErrInfo.hh:100
Definition: XrdOucStream.hh:46
Definition: XrdOucTrace.hh:36
Definition: XrdSecEntity.hh:52
Definition: XrdSfsAio.hh:58
Definition: XrdSfsDio.hh:47
Definition: XrdSfsInterface.hh:995
Definition: XrdSfsInterface.hh:210
csFunc
Definition: XrdSfsInterface.hh:262
Definition: XrdSfsInterface.hh:652
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
Definition: XrdSysError.hh:90
Definition: XrdSysLogger.hh:53
Definition: XrdThrottleManager.hh:42
Definition: XrdThrottle.hh:111
virtual XrdSfsDirectory * newDir(char *user=0, int monid=0)
XrdOucTrace m_trace
Definition: XrdThrottle.hh:242
bool m_initialized
Definition: XrdThrottle.hh:245
std::string m_config_file
Definition: XrdThrottle.hh:243
virtual const char * getVersion()
virtual int rem(const char *path, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *info=0)
virtual int chksum(csFunc Func, const char *csName, const char *path, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0, const char *opaque=0)
virtual XrdSfsFile * newFile(char *user=0, int monid=0)
int xloadshed(XrdOucStream &Config)
friend XrdSfsFileSystem * XrdSfsGetFileSystem_Internal(XrdSfsFileSystem *, XrdSysLogger *, const char *)
XrdSysError m_eroute
Definition: XrdThrottle.hh:241
virtual int getStats(char *buff, int blen)
static void Initialize(FileSystem *&fs, XrdSfsFileSystem *native_fs, XrdSysLogger *lp, const char *config_file)
virtual void Disc(const XrdSecEntity *client=0)
XrdThrottleManager m_throttle
Definition: XrdThrottle.hh:246
virtual int fsctl(const int cmd, const char *args, XrdOucErrInfo &out_error, const XrdSecEntity *client)
virtual int exists(const char *fileName, XrdSfsFileExistence &exists_flag, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
XrdVersionInfo * myVersion
Definition: XrdThrottle.hh:247
int xtrace(XrdOucStream &Config)
virtual int stat(const char *Name, mode_t &mode, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
virtual int chmod(const char *Name, XrdSfsMode Mode, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
virtual void EnvInfo(XrdOucEnv *envP)
virtual int remdir(const char *dirName, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *info=0)
virtual int mkdir(const char *dirName, XrdSfsMode Mode, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
virtual int prepare(XrdSfsPrep &pargs, XrdOucErrInfo &out_error, const XrdSecEntity *client=0)
XrdSfsFileSystem * m_sfs_ptr
Definition: XrdThrottle.hh:244
int xthrottle(XrdOucStream &Config)
virtual int stat(const char *Name, struct stat *buf, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *opaque=0)
virtual int Configure(XrdSysError &, XrdSfsFileSystem *native_fs)
virtual int rename(const char *oldFileName, const char *newFileName, XrdOucErrInfo &out_error, const XrdSecEntity *client, const char *infoO=0, const char *infoN=0)
static FileSystem * m_instance
Definition: XrdThrottle.hh:240
virtual int truncate(const char *Name, XrdSfsFileOffset fileOffset, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)
Definition: XrdThrottle.hh:28
virtual int sync()
virtual int open(const char *fileName, XrdSfsFileOpenMode openMode, mode_t createMode, const XrdSecEntity *client, const char *opaque=0)
virtual int stat(struct stat *buf)
std::string m_loadshed
Definition: XrdThrottle.hh:104
virtual XrdSfsXferSize write(XrdSfsFileOffset fileOffset, const char *buffer, XrdSfsXferSize buffer_size)
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &out_error)
XrdSysError & m_eroute
Definition: XrdThrottle.hh:107
File(const char *user, int monid, unique_sfs_ptr, XrdThrottleManager &throttle, XrdSysError &eroute)
virtual int getMmap(void **Addr, off_t &Size)
virtual int sync(XrdSfsAio *aiop)
virtual int close()
virtual int read(XrdSfsFileOffset fileOffset, XrdSfsXferSize amount)
XrdThrottleManager & m_throttle
Definition: XrdThrottle.hh:106
virtual int read(XrdSfsAio *aioparm)
virtual int truncate(XrdSfsFileOffset fileOffset)
virtual int write(XrdSfsAio *aioparm)
virtual int getCXinfo(char cxtype[4], int &cxrsz)
std::string m_user
Definition: XrdThrottle.hh:105
virtual XrdSfsXferSize read(XrdSfsFileOffset fileOffset, char *buffer, XrdSfsXferSize buffer_size)
virtual int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
virtual const char * FName()
unique_sfs_ptr m_sfs
Definition: XrdThrottle.hh:102
int m_uid
Definition: XrdThrottle.hh:103
XrdCmsConfig Config
Definition: XrdThrottle.hh:18
std::auto_ptr< XrdSfsFile > unique_sfs_ptr
Definition: XrdThrottle.hh:23
< Prepare parameters
Definition: XrdSfsInterface.hh:161