xrootd
Loading...
Searching...
No Matches
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 virtual int
45 checkpoint(cpAct act, struct iov *range=0, int n=0);
46
47 using XrdSfsFile::fctl;
48 virtual int
49 fctl(const int cmd,
50 const char *args,
51 XrdOucErrInfo &out_error);
52
53 virtual const char *
55
56 virtual int
57 getMmap(void **Addr, off_t &Size);
58
59 virtual XrdSfsXferSize
61 char *buffer,
62 XrdSfsXferSize rdlen,
63 uint32_t *csvec,
64 uint64_t opts=0);
65
66 virtual XrdSfsXferSize
67 pgRead(XrdSfsAio *aioparm, uint64_t opts=0);
68
69 virtual XrdSfsXferSize
71 char *buffer,
72 XrdSfsXferSize rdlen,
73 uint32_t *csvec,
74 uint64_t opts=0);
75
76 virtual XrdSfsXferSize
77 pgWrite(XrdSfsAio *aioparm, uint64_t opts=0);
78
79 virtual int
80 read(XrdSfsFileOffset fileOffset, // Preread only
81 XrdSfsXferSize amount);
82
83 virtual XrdSfsXferSize
85 char *buffer,
86 XrdSfsXferSize buffer_size);
87
88 virtual int
89 read(XrdSfsAio *aioparm);
90
91 virtual XrdSfsXferSize
93 const char *buffer,
94 XrdSfsXferSize buffer_size);
95
96 virtual int
97 write(XrdSfsAio *aioparm);
98
99 virtual int
101
102 virtual int
104
105 virtual int
106 stat(struct stat *buf);
107
108 virtual int
110
111 virtual int
112 getCXinfo(char cxtype[4], int &cxrsz);
113
114 virtual int
116 XrdSfsFileOffset offset,
117 XrdSfsXferSize size);
118
119private:
121
122 virtual
124
125 bool m_is_open{false};
127 int m_uid; // A unique identifier for this user; has no meaning except for the fairshare.
128 std::string m_loadshed;
129 std::string m_connection_id; // Identity for the connection; may or may authenticated
130 std::string m_user;
133};
134
136{
137
139
140public:
141
142 virtual XrdSfsDirectory *
143 newDir(char *user=0, int monid=0);
144
145 virtual XrdSfsFile *
146 newFile(char *user=0, int monid=0);
147
148 virtual int
150 const char *csName,
151 const char *path,
152 XrdOucErrInfo &eInfo,
153 const XrdSecEntity *client = 0,
154 const char *opaque = 0);
155
156 virtual int
157 chmod(const char *Name,
158 XrdSfsMode Mode,
159 XrdOucErrInfo &out_error,
160 const XrdSecEntity *client,
161 const char *opaque = 0);
162
163 virtual void
164 Connect(const XrdSecEntity *client = 0);
165
166 virtual void
167 Disc(const XrdSecEntity *client = 0);
168
169 virtual void
171
172 virtual int
173 exists(const char *fileName,
174 XrdSfsFileExistence &exists_flag,
175 XrdOucErrInfo &out_error,
176 const XrdSecEntity *client,
177 const char *opaque = 0);
178
179 virtual int
181 XrdOucErrInfo &eInfo,
182 const XrdSecEntity *client = 0);
183
184
185 virtual uint64_t
187
188 virtual int
189 fsctl(const int cmd,
190 const char *args,
191 XrdOucErrInfo &out_error,
192 const XrdSecEntity *client);
193
194 virtual int
196
197 virtual int
198 getStats(char *buff, int blen);
199
200 virtual const char *
202
203 virtual int
205 XrdSfsGPFile &gpReq,
206 XrdOucErrInfo &eInfo,
207 const XrdSecEntity *client = 0);
208
209 virtual int
210 mkdir(const char *dirName,
211 XrdSfsMode Mode,
212 XrdOucErrInfo &out_error,
213 const XrdSecEntity *client,
214 const char *opaque = 0);
215
216 virtual int
218 XrdOucErrInfo &out_error,
219 const XrdSecEntity *client = 0);
220
221 virtual int
222 rem(const char *path,
223 XrdOucErrInfo &out_error,
224 const XrdSecEntity *client,
225 const char *info = 0);
226
227 virtual int
228 remdir(const char *dirName,
229 XrdOucErrInfo &out_error,
230 const XrdSecEntity *client,
231 const char *info = 0);
232
233 virtual int
234 rename(const char *oldFileName,
235 const char *newFileName,
236 XrdOucErrInfo &out_error,
237 const XrdSecEntity *client,
238 const char *infoO = 0,
239 const char *infoN = 0);
240
241 virtual int
242 stat(const char *Name,
243 struct stat *buf,
244 XrdOucErrInfo &out_error,
245 const XrdSecEntity *client,
246 const char *opaque = 0);
247
248 virtual int
249 stat(const char *Name,
250 mode_t &mode,
251 XrdOucErrInfo &out_error,
252 const XrdSecEntity *client,
253 const char *opaque = 0);
254
255 virtual int
256 truncate(const char *Name,
257 XrdSfsFileOffset fileOffset,
258 XrdOucErrInfo &out_error,
259 const XrdSecEntity *client = 0,
260 const char *opaque = 0);
261
262 virtual int
264
265private:
266 static void
268 XrdSfsFileSystem *native_fs,
269 XrdSysLogger *lp,
270 const char *config_file);
271
273
274 virtual
276
277 int
279
280 int
282
283 int
285
286 int
288
289 int
291
295 std::string m_config_file;
299 XrdVersionInfo *myVersion;
300
301};
302
303}
304
305#endif
306
#define stat(a, b)
Definition XrdPosix.hh:96
int XrdSfsMode
Definition XrdSfsInterface.hh:129
XrdSfsFileExistence
Definition XrdSfsInterface.hh:133
int XrdSfsFileOpenMode
Definition XrdSfsInterface.hh:128
long long XrdSfsFileOffset
Definition XrdSfsInterface.hh:127
int XrdSfsXferSize
Definition XrdSfsInterface.hh:130
Definition XrdOucEnv.hh:42
Definition XrdOucErrInfo.hh:101
Definition XrdOucStream.hh:47
Definition XrdOucTrace.hh:36
Definition XrdSecEntity.hh:65
Definition XrdSfsAio.hh:59
Definition XrdSfsDio.hh:47
Definition XrdSfsInterface.hh:243
Definition XrdSfsInterface.hh:845
csFunc
Definition XrdSfsInterface.hh:927
gpfFunc
Definition XrdSfsInterface.hh:1136
Definition XrdSfsInterface.hh:369
cpAct
Definition XrdSfsInterface.hh:432
virtual int fctl(const int cmd, const char *args, XrdOucErrInfo &eInfo)=0
Definition XrdSfsGPFile.hh:37
Definition XrdSysError.hh:90
Definition XrdSysLogger.hh:53
Definition XrdThrottleManager.hh:45
Definition XrdThrottle.hh:136
virtual XrdSfsDirectory * newDir(char *user=0, int monid=0)
XrdOucTrace m_trace
Definition XrdThrottle.hh:294
int xmaxopen(XrdOucStream &Config)
bool m_initialized
Definition XrdThrottle.hh:297
std::string m_config_file
Definition XrdThrottle.hh:295
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:293
virtual int getStats(char *buff, int blen)
virtual uint64_t Features()
static void Initialize(FileSystem *&fs, XrdSfsFileSystem *native_fs, XrdSysLogger *lp, const char *config_file)
virtual void Disc(const XrdSecEntity *client=0)
virtual int FAttr(XrdSfsFACtl *faReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
virtual int gpFile(gpfFunc &gpAct, XrdSfsGPFile &gpReq, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)
XrdThrottleManager m_throttle
Definition XrdThrottle.hh:298
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:299
virtual int getChkPSize()
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:296
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:292
virtual void Connect(const XrdSecEntity *client=0)
virtual int truncate(const char *Name, XrdSfsFileOffset fileOffset, XrdOucErrInfo &out_error, const XrdSecEntity *client=0, const char *opaque=0)
int xmaxconn(XrdOucStream &Config)
Definition XrdThrottle.hh:28
virtual XrdSfsXferSize pgRead(XrdSfsAio *aioparm, uint64_t opts=0)
virtual XrdSfsXferSize pgWrite(XrdSfsAio *aioparm, uint64_t opts=0)
virtual int sync()
bool m_is_open
Definition XrdThrottle.hh:125
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:128
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:132
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:131
virtual int checkpoint(cpAct act, struct iov *range=0, int n=0)
virtual int read(XrdSfsAio *aioparm)
virtual int truncate(XrdSfsFileOffset fileOffset)
File(const char *, unique_sfs_ptr, XrdThrottleManager &, XrdSysError &)
virtual int write(XrdSfsAio *aioparm)
virtual int getCXinfo(char cxtype[4], int &cxrsz)
std::string m_user
Definition XrdThrottle.hh:130
virtual XrdSfsXferSize pgRead(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize rdlen, uint32_t *csvec, uint64_t opts=0)
std::string m_connection_id
Definition XrdThrottle.hh:129
virtual XrdSfsXferSize read(XrdSfsFileOffset fileOffset, char *buffer, XrdSfsXferSize buffer_size)
virtual XrdSfsXferSize pgWrite(XrdSfsFileOffset offset, char *buffer, XrdSfsXferSize rdlen, uint32_t *csvec, uint64_t opts=0)
virtual int SendData(XrdSfsDio *sfDio, XrdSfsFileOffset offset, XrdSfsXferSize size)
virtual const char * FName()
unique_sfs_ptr m_sfs
Definition XrdThrottle.hh:126
int m_uid
Definition XrdThrottle.hh:127
Definition XrdThrottle.hh:18
std::auto_ptr< XrdSfsFile > unique_sfs_ptr
Definition XrdThrottle.hh:23
Definition XrdSfsFAttr.hh:73
< Prepare parameters
Definition XrdSfsInterface.hh:172
Definition XrdOucIOVec.hh:65