xrootd
XrdClPlugInInterface.hh
Go to the documentation of this file.
1//------------------------------------------------------------------------------
2// Copyright (c) 2014 by European Organization for Nuclear Research (CERN)
3// Author: Lukasz Janyst <ljanyst@cern.ch>
4//------------------------------------------------------------------------------
5// This file is part of the XRootD software suite.
6//
7// XRootD is free software: you can redistribute it and/or modify
8// it under the terms of the GNU Lesser General Public License as published by
9// the Free Software Foundation, either version 3 of the License, or
10// (at your option) any later version.
11//
12// XRootD is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16//
17// You should have received a copy of the GNU Lesser General Public License
18// along with XRootD. If not, see <http://www.gnu.org/licenses/>.
19//
20// In applying this licence, CERN does not waive the privileges and immunities
21// granted to it by virtue of its status as an Intergovernmental Organization
22// or submit itself to any jurisdiction.
23//------------------------------------------------------------------------------
24
25#ifndef __XRD_CL_PLUGIN_INTERFACE__
26#define __XRD_CL_PLUGIN_INTERFACE__
27
28#include "XrdCl/XrdClFile.hh"
30
31namespace XrdCl
32{
33 //----------------------------------------------------------------------------
35 //----------------------------------------------------------------------------
37 {
38 public:
39 //------------------------------------------------------------------------
41 //------------------------------------------------------------------------
42 virtual ~FilePlugIn() {}
43 //------------------------------------------------------------------------
45 //------------------------------------------------------------------------
46 virtual XRootDStatus Open( const std::string &url,
47 OpenFlags::Flags flags,
48 Access::Mode mode,
49 ResponseHandler *handler,
50 uint16_t timeout )
51 {
52 (void)url; (void)flags; (void)mode; (void)handler; (void)timeout;
54 }
55
56 //------------------------------------------------------------------------
58 //------------------------------------------------------------------------
60 uint16_t timeout )
61 {
62 (void)handler; (void)timeout;
64 }
65
66 //------------------------------------------------------------------------
68 //------------------------------------------------------------------------
69 virtual XRootDStatus Stat( bool force,
70 ResponseHandler *handler,
71 uint16_t timeout )
72 {
73 (void)force; (void)handler; (void)timeout;
75 }
76
77
78 //------------------------------------------------------------------------
80 //------------------------------------------------------------------------
81 virtual XRootDStatus Read( uint64_t offset,
82 uint32_t size,
83 void *buffer,
84 ResponseHandler *handler,
85 uint16_t timeout )
86 {
87 (void)offset; (void)size; (void)buffer; (void)handler; (void)timeout;
89 }
90
91 //------------------------------------------------------------------------
93 //------------------------------------------------------------------------
94 virtual XRootDStatus Write( uint64_t offset,
95 uint32_t size,
96 const void *buffer,
97 ResponseHandler *handler,
98 uint16_t timeout )
99 {
100 (void)offset; (void)size; (void)buffer; (void)handler; (void)timeout;
102 }
103
104 //------------------------------------------------------------------------
106 //------------------------------------------------------------------------
108 uint16_t timeout )
109 {
110 (void)handler; (void)timeout;
112 }
113
114 //------------------------------------------------------------------------
116 //------------------------------------------------------------------------
117 virtual XRootDStatus Truncate( uint64_t size,
118 ResponseHandler *handler,
119 uint16_t timeout )
120 {
121 (void)size; (void)handler; (void)timeout;
123 }
124
125 //------------------------------------------------------------------------
127 //------------------------------------------------------------------------
128 virtual XRootDStatus VectorRead( const ChunkList &chunks,
129 void *buffer,
130 ResponseHandler *handler,
131 uint16_t timeout )
132 {
133 (void)chunks; (void)buffer; (void)handler; (void)timeout;
135 }
136
137 //------------------------------------------------------------------------
139 //------------------------------------------------------------------------
140 virtual XRootDStatus Fcntl( const Buffer &arg,
141 ResponseHandler *handler,
142 uint16_t timeout )
143 {
144 (void)arg; (void)handler; (void)timeout;
146 }
147
148 //------------------------------------------------------------------------
150 //------------------------------------------------------------------------
152 uint16_t timeout )
153 {
154 (void)handler; (void)timeout;
156 }
157
158 //------------------------------------------------------------------------
160 //------------------------------------------------------------------------
161 virtual bool IsOpen() const
162 {
163 return false;
164 }
165
166 //------------------------------------------------------------------------
168 //------------------------------------------------------------------------
169 virtual bool SetProperty( const std::string &name,
170 const std::string &value )
171 {
172 (void)name; (void)value;
173 return false;
174 }
175
176 //------------------------------------------------------------------------
178 //------------------------------------------------------------------------
179 virtual bool GetProperty( const std::string &name,
180 std::string &value ) const
181 {
182 (void)name; (void)value;
183 return false;
184 }
185 };
186
187 //----------------------------------------------------------------------------
189 //----------------------------------------------------------------------------
191 {
192 public:
193 //------------------------------------------------------------------------
195 //------------------------------------------------------------------------
196 virtual ~FileSystemPlugIn() {}
197
198 //------------------------------------------------------------------------
200 //------------------------------------------------------------------------
201 virtual XRootDStatus Locate( const std::string &path,
202 OpenFlags::Flags flags,
203 ResponseHandler *handler,
204 uint16_t timeout )
205 {
206 (void)path; (void)flags; (void)handler; (void)timeout;
208 }
209
210 //------------------------------------------------------------------------
212 //------------------------------------------------------------------------
213 virtual XRootDStatus Mv( const std::string &source,
214 const std::string &dest,
215 ResponseHandler *handler,
216 uint16_t timeout )
217 {
218 (void)source; (void)dest; (void)handler; (void)timeout;
220 }
221
222 //------------------------------------------------------------------------
224 //------------------------------------------------------------------------
226 const Buffer &arg,
227 ResponseHandler *handler,
228 uint16_t timeout )
229 {
230 (void)queryCode; (void)arg; (void)handler; (void)timeout;
232 }
233
234 //------------------------------------------------------------------------
236 //------------------------------------------------------------------------
237 virtual XRootDStatus Truncate( const std::string &path,
238 uint64_t size,
239 ResponseHandler *handler,
240 uint16_t timeout )
241 {
242 (void)path; (void)size; (void)handler; (void)timeout;
244 }
245
246 //------------------------------------------------------------------------
248 //------------------------------------------------------------------------
249 virtual XRootDStatus Rm( const std::string &path,
250 ResponseHandler *handler,
251 uint16_t timeout )
252 {
253 (void)path; (void)handler; (void)timeout;
255 }
256
257 //------------------------------------------------------------------------
259 //------------------------------------------------------------------------
260 virtual XRootDStatus MkDir( const std::string &path,
261 MkDirFlags::Flags flags,
262 Access::Mode mode,
263 ResponseHandler *handler,
264 uint16_t timeout )
265 {
266 (void)path; (void)flags; (void)mode; (void)handler; (void)timeout;
268 }
269
270 //------------------------------------------------------------------------
272 //------------------------------------------------------------------------
273 virtual XRootDStatus RmDir( const std::string &path,
274 ResponseHandler *handler,
275 uint16_t timeout )
276 {
277 (void)path; (void)handler; (void)timeout;
279 }
280
281 //------------------------------------------------------------------------
283 //------------------------------------------------------------------------
284 virtual XRootDStatus ChMod( const std::string &path,
285 Access::Mode mode,
286 ResponseHandler *handler,
287 uint16_t timeout )
288 {
289 (void)path; (void)mode; (void)handler; (void)timeout;
291 }
292
293 //------------------------------------------------------------------------
295 //------------------------------------------------------------------------
297 uint16_t timeout )
298 {
299 (void)handler; (void)timeout;
301 }
302
303 //------------------------------------------------------------------------
305 //------------------------------------------------------------------------
306 virtual XRootDStatus Stat( const std::string &path,
307 ResponseHandler *handler,
308 uint16_t timeout )
309 {
310 (void)path; (void)handler; (void)timeout;
312 }
313
314 //------------------------------------------------------------------------
316 //------------------------------------------------------------------------
317 virtual XRootDStatus StatVFS( const std::string &path,
318 ResponseHandler *handler,
319 uint16_t timeout )
320 {
321 (void)path; (void)handler; (void)timeout;
323 }
324
325 //------------------------------------------------------------------------
327 //------------------------------------------------------------------------
329 uint16_t timeout = 0 )
330 {
331 (void)handler; (void)timeout;
333 }
334
335 //------------------------------------------------------------------------
337 //------------------------------------------------------------------------
338 virtual XRootDStatus DirList( const std::string &path,
340 ResponseHandler *handler,
341 uint16_t timeout )
342 {
343 (void)path; (void)flags; (void)handler; (void)timeout;
345 }
346
347 //------------------------------------------------------------------------
349 //------------------------------------------------------------------------
350 virtual XRootDStatus SendInfo( const std::string &info,
351 ResponseHandler *handler,
352 uint16_t timeout )
353 {
354 (void)info; (void)handler; (void)timeout;
356 }
357
358 //------------------------------------------------------------------------
360 //------------------------------------------------------------------------
361 virtual XRootDStatus Prepare( const std::vector<std::string> &fileList,
363 uint8_t priority,
364 ResponseHandler *handler,
365 uint16_t timeout )
366 {
367 (void)fileList; (void)flags; (void)priority; (void)handler;
368 (void)timeout;
370 }
371
372 //------------------------------------------------------------------------
374 //------------------------------------------------------------------------
375 virtual bool SetProperty( const std::string &name,
376 const std::string &value )
377 {
378 (void)name; (void)value;
379 return false;
380 }
381
382 //------------------------------------------------------------------------
384 //------------------------------------------------------------------------
385 virtual bool GetProperty( const std::string &name,
386 std::string &value ) const
387 {
388 (void)name; (void)value;
389 return false;
390 }
391 };
392
393 //----------------------------------------------------------------------------
395 //----------------------------------------------------------------------------
397 {
398 public:
399 //------------------------------------------------------------------------
401 //------------------------------------------------------------------------
402 virtual ~PlugInFactory() {}
403
404 //------------------------------------------------------------------------
406 //------------------------------------------------------------------------
407 virtual FilePlugIn *CreateFile( const std::string &url ) = 0;
408
409 //------------------------------------------------------------------------
411 //------------------------------------------------------------------------
412 virtual FileSystemPlugIn *CreateFileSystem( const std::string &url ) = 0;
413 };
414}
415
416#endif // __XRD_CL_PLUGIN_INTERFACE__
Binary blob representation.
Definition: XrdClBuffer.hh:34
An interface for file plug-ins.
Definition: XrdClPlugInInterface.hh:37
virtual XRootDStatus Fcntl(const Buffer &arg, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:140
virtual XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:81
virtual XRootDStatus Open(const std::string &url, OpenFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:46
virtual XRootDStatus Sync(ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:107
virtual bool IsOpen() const
Definition: XrdClPlugInInterface.hh:161
virtual XRootDStatus Close(ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:59
virtual bool GetProperty(const std::string &name, std::string &value) const
Definition: XrdClPlugInInterface.hh:179
virtual XRootDStatus VectorRead(const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:128
virtual XRootDStatus Truncate(uint64_t size, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:117
virtual XRootDStatus Visa(ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:151
virtual XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:69
virtual bool SetProperty(const std::string &name, const std::string &value)
Definition: XrdClPlugInInterface.hh:169
virtual XRootDStatus Write(uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:94
virtual ~FilePlugIn()
Destructor.
Definition: XrdClPlugInInterface.hh:42
An interface for file plug-ins.
Definition: XrdClPlugInInterface.hh:191
virtual XRootDStatus Mv(const std::string &source, const std::string &dest, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:213
virtual XRootDStatus Ping(ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:296
virtual XRootDStatus SendInfo(const std::string &info, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:350
virtual XRootDStatus DirList(const std::string &path, DirListFlags::Flags flags, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:338
virtual XRootDStatus ChMod(const std::string &path, Access::Mode mode, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:284
virtual bool GetProperty(const std::string &name, std::string &value) const
Definition: XrdClPlugInInterface.hh:385
virtual XRootDStatus MkDir(const std::string &path, MkDirFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:260
virtual XRootDStatus Locate(const std::string &path, OpenFlags::Flags flags, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:201
virtual XRootDStatus StatVFS(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:317
virtual XRootDStatus Protocol(ResponseHandler *handler, uint16_t timeout=0)
Definition: XrdClPlugInInterface.hh:328
virtual XRootDStatus RmDir(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:273
virtual bool SetProperty(const std::string &name, const std::string &value)
Definition: XrdClPlugInInterface.hh:375
virtual XRootDStatus Query(QueryCode::Code queryCode, const Buffer &arg, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:225
virtual XRootDStatus Prepare(const std::vector< std::string > &fileList, PrepareFlags::Flags flags, uint8_t priority, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:361
virtual XRootDStatus Rm(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:249
virtual ~FileSystemPlugIn()
Destructor.
Definition: XrdClPlugInInterface.hh:196
virtual XRootDStatus Stat(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:306
virtual XRootDStatus Truncate(const std::string &path, uint64_t size, ResponseHandler *handler, uint16_t timeout)
Definition: XrdClPlugInInterface.hh:237
Plugin factory.
Definition: XrdClPlugInInterface.hh:397
virtual ~PlugInFactory()
Destructor.
Definition: XrdClPlugInInterface.hh:402
virtual FilePlugIn * CreateFile(const std::string &url)=0
Create a file plug-in for the given URL.
virtual FileSystemPlugIn * CreateFileSystem(const std::string &url)=0
Create a file system plug-in for the given URL.
Handle an async response.
Definition: XrdClXRootDResponses.hh:855
Request status.
Definition: XrdClXRootDResponses.hh:213
Definition: XrdClAnyObject.hh:26
const uint16_t errNotImplemented
Operation is not implemented.
Definition: XrdClStatus.hh:63
const uint16_t stError
An error occurred that could potentially be retried.
Definition: XrdClStatus.hh:32
std::vector< ChunkInfo > ChunkList
List of chunks.
Definition: XrdClXRootDResponses.hh:784
Mode
Access mode.
Definition: XrdClFileSystem.hh:123
Flags
Definition: XrdClFileSystem.hh:157
Flags
Definition: XrdClFileSystem.hh:144
Flags
Open flags, may be or'd when appropriate.
Definition: XrdClFileSystem.hh:77
Flags
Definition: XrdClFileSystem.hh:176
Code
XRootD query request codes.
Definition: XrdClFileSystem.hh:54