xrootd
Loading...
Searching...
No Matches
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"
31
32namespace XrdCl
33{
34
35 //----------------------------------------------------------------------------
37 //----------------------------------------------------------------------------
39 {
40 public:
41 //------------------------------------------------------------------------
43 //------------------------------------------------------------------------
44 virtual ~FilePlugIn() {}
45 //------------------------------------------------------------------------
47 //------------------------------------------------------------------------
48 virtual XRootDStatus Open( const std::string &url,
49 OpenFlags::Flags flags,
50 Access::Mode mode,
51 ResponseHandler *handler,
52 uint16_t timeout )
53 {
54 (void)url; (void)flags; (void)mode; (void)handler; (void)timeout;
56 }
57
58 //------------------------------------------------------------------------
60 //------------------------------------------------------------------------
62 uint16_t timeout )
63 {
64 (void)handler; (void)timeout;
66 }
67
68 //------------------------------------------------------------------------
70 //------------------------------------------------------------------------
71 virtual XRootDStatus Stat( bool force,
72 ResponseHandler *handler,
73 uint16_t timeout )
74 {
75 (void)force; (void)handler; (void)timeout;
77 }
78
79 //------------------------------------------------------------------------
81 //------------------------------------------------------------------------
82 virtual XRootDStatus Read( uint64_t offset,
83 uint32_t size,
84 void *buffer,
85 ResponseHandler *handler,
86 uint16_t timeout )
87 {
88 (void)offset; (void)size; (void)buffer; (void)handler; (void)timeout;
90 }
91
92 //------------------------------------------------------------------------
94 //------------------------------------------------------------------------
95 virtual XRootDStatus Read( uint64_t offset,
96 uint32_t size,
98 int fd,
99 ResponseHandler *handler,
100 uint16_t timeout = 0 )
101 {
102 (void)offset; (void)size; (void)fdoff; (void)fd, (void)handler; (void)timeout;
104 }
105
106 //------------------------------------------------------------------------
108 //------------------------------------------------------------------------
109 virtual XRootDStatus PgRead( uint64_t offset,
110 uint32_t size,
111 void *buffer,
112 ResponseHandler *handler,
113 uint16_t timeout )
114 {
115 (void)offset; (void)size; (void)buffer; (void)handler; (void)timeout;
117 }
118
119 //------------------------------------------------------------------------
121 //------------------------------------------------------------------------
122 virtual XRootDStatus Write( uint64_t offset,
123 uint32_t size,
124 const void *buffer,
125 ResponseHandler *handler,
126 uint16_t timeout )
127 {
128 (void)offset; (void)size; (void)buffer; (void)handler; (void)timeout;
130 }
131
132 //------------------------------------------------------------------------
134 //------------------------------------------------------------------------
135 virtual XRootDStatus Write( uint64_t offset,
136 Buffer &&buffer,
137 ResponseHandler *handler,
138 uint16_t timeout = 0 )
139 {
140 (void)offset; (void)buffer; (void)handler; (void)timeout;
142 }
143
144 //------------------------------------------------------------------------
146 //------------------------------------------------------------------------
147 virtual XRootDStatus Write( uint64_t offset,
148 uint32_t size,
149 Optional<uint64_t> fdoff,
150 int fd,
151 ResponseHandler *handler,
152 uint16_t timeout = 0 )
153 {
154 (void)offset; (void)size; (void)fdoff; (void)fd, (void)handler; (void)timeout;
156 }
157
158 //------------------------------------------------------------------------
160 //------------------------------------------------------------------------
161 virtual XRootDStatus PgWrite( uint64_t offset,
162 uint32_t nbpgs,
163 const void *buffer,
164 std::vector<uint32_t> &cksums,
165 ResponseHandler *handler,
166 uint16_t timeout )
167 {
168 (void)offset; (void)nbpgs; (void)buffer; (void)cksums, (void)handler; (void)timeout;
170 }
171
172 //------------------------------------------------------------------------
174 //------------------------------------------------------------------------
176 uint16_t timeout )
177 {
178 (void)handler; (void)timeout;
180 }
181
182 //------------------------------------------------------------------------
184 //------------------------------------------------------------------------
185 virtual XRootDStatus Truncate( uint64_t size,
186 ResponseHandler *handler,
187 uint16_t timeout )
188 {
189 (void)size; (void)handler; (void)timeout;
191 }
192
193 //------------------------------------------------------------------------
195 //------------------------------------------------------------------------
196 virtual XRootDStatus VectorRead( const ChunkList &chunks,
197 void *buffer,
198 ResponseHandler *handler,
199 uint16_t timeout )
200 {
201 (void)chunks; (void)buffer; (void)handler; (void)timeout;
203 }
204
205 //------------------------------------------------------------------------
207 //------------------------------------------------------------------------
208 virtual XRootDStatus VectorWrite( const ChunkList &chunks,
209 ResponseHandler *handler,
210 uint16_t timeout = 0 )
211 {
212 (void)chunks; (void)handler; (void)timeout;
214 }
215
216
217 //------------------------------------------------------------------------
219 //------------------------------------------------------------------------
220 virtual XRootDStatus WriteV( uint64_t offset,
221 const struct iovec *iov,
222 int iovcnt,
223 ResponseHandler *handler,
224 uint16_t timeout = 0 )
225 {
226 (void)offset; (void)iov; (void)iovcnt; (void)handler; (void)timeout;
228 }
229
230 //------------------------------------------------------------------------
232 //------------------------------------------------------------------------
233 virtual XRootDStatus Fcntl( const Buffer &arg,
234 ResponseHandler *handler,
235 uint16_t timeout )
236 {
237 (void)arg; (void)handler; (void)timeout;
239 }
240
241 //------------------------------------------------------------------------
243 //------------------------------------------------------------------------
245 uint16_t timeout )
246 {
247 (void)handler; (void)timeout;
249 }
250
251 //------------------------------------------------------------------------
253 //------------------------------------------------------------------------
254 virtual bool IsOpen() const
255 {
256 return false;
257 }
258
259 //------------------------------------------------------------------------
261 //------------------------------------------------------------------------
262 virtual bool SetProperty( const std::string &name,
263 const std::string &value )
264 {
265 (void)name; (void)value;
266 return false;
267 }
268
269 //------------------------------------------------------------------------
271 //------------------------------------------------------------------------
272 virtual bool GetProperty( const std::string &name,
273 std::string &value ) const
274 {
275 (void)name; (void)value;
276 return false;
277 }
278 };
279
280 //----------------------------------------------------------------------------
282 //----------------------------------------------------------------------------
284 {
285 public:
286 //------------------------------------------------------------------------
288 //------------------------------------------------------------------------
289 virtual ~FileSystemPlugIn() {}
290
291 //------------------------------------------------------------------------
293 //------------------------------------------------------------------------
294 virtual XRootDStatus Locate( const std::string &path,
295 OpenFlags::Flags flags,
296 ResponseHandler *handler,
297 uint16_t timeout )
298 {
299 (void)path; (void)flags; (void)handler; (void)timeout;
301 }
302
303 //------------------------------------------------------------------------
305 //------------------------------------------------------------------------
306 virtual XRootDStatus DeepLocate( const std::string &path,
307 OpenFlags::Flags flags,
308 ResponseHandler *handler,
309 uint16_t timeout )
310 {
311 (void)path; (void)flags; (void)handler; (void)timeout;
313 }
314
315 //------------------------------------------------------------------------
317 //------------------------------------------------------------------------
318 virtual XRootDStatus Mv( const std::string &source,
319 const std::string &dest,
320 ResponseHandler *handler,
321 uint16_t timeout )
322 {
323 (void)source; (void)dest; (void)handler; (void)timeout;
325 }
326
327 //------------------------------------------------------------------------
329 //------------------------------------------------------------------------
331 const Buffer &arg,
332 ResponseHandler *handler,
333 uint16_t timeout )
334 {
335 (void)queryCode; (void)arg; (void)handler; (void)timeout;
337 }
338
339 //------------------------------------------------------------------------
341 //------------------------------------------------------------------------
342 virtual XRootDStatus Truncate( const std::string &path,
343 uint64_t size,
344 ResponseHandler *handler,
345 uint16_t timeout )
346 {
347 (void)path; (void)size; (void)handler; (void)timeout;
349 }
350
351 //------------------------------------------------------------------------
353 //------------------------------------------------------------------------
354 virtual XRootDStatus Rm( const std::string &path,
355 ResponseHandler *handler,
356 uint16_t timeout )
357 {
358 (void)path; (void)handler; (void)timeout;
360 }
361
362 //------------------------------------------------------------------------
364 //------------------------------------------------------------------------
365 virtual XRootDStatus MkDir( const std::string &path,
366 MkDirFlags::Flags flags,
367 Access::Mode mode,
368 ResponseHandler *handler,
369 uint16_t timeout )
370 {
371 (void)path; (void)flags; (void)mode; (void)handler; (void)timeout;
373 }
374
375 //------------------------------------------------------------------------
377 //------------------------------------------------------------------------
378 virtual XRootDStatus RmDir( const std::string &path,
379 ResponseHandler *handler,
380 uint16_t timeout )
381 {
382 (void)path; (void)handler; (void)timeout;
384 }
385
386 //------------------------------------------------------------------------
388 //------------------------------------------------------------------------
389 virtual XRootDStatus ChMod( const std::string &path,
390 Access::Mode mode,
391 ResponseHandler *handler,
392 uint16_t timeout )
393 {
394 (void)path; (void)mode; (void)handler; (void)timeout;
396 }
397
398 //------------------------------------------------------------------------
400 //------------------------------------------------------------------------
402 uint16_t timeout )
403 {
404 (void)handler; (void)timeout;
406 }
407
408 //------------------------------------------------------------------------
410 //------------------------------------------------------------------------
411 virtual XRootDStatus Stat( const std::string &path,
412 ResponseHandler *handler,
413 uint16_t timeout )
414 {
415 (void)path; (void)handler; (void)timeout;
417 }
418
419 //------------------------------------------------------------------------
421 //------------------------------------------------------------------------
422 virtual XRootDStatus StatVFS( const std::string &path,
423 ResponseHandler *handler,
424 uint16_t timeout )
425 {
426 (void)path; (void)handler; (void)timeout;
428 }
429
430 //------------------------------------------------------------------------
432 //------------------------------------------------------------------------
434 uint16_t timeout = 0 )
435 {
436 (void)handler; (void)timeout;
438 }
439
440 //------------------------------------------------------------------------
442 //------------------------------------------------------------------------
443 virtual XRootDStatus DirList( const std::string &path,
445 ResponseHandler *handler,
446 uint16_t timeout )
447 {
448 (void)path; (void)flags; (void)handler; (void)timeout;
450 }
451
452 //------------------------------------------------------------------------
454 //------------------------------------------------------------------------
455 virtual XRootDStatus SendInfo( const std::string &info,
456 ResponseHandler *handler,
457 uint16_t timeout )
458 {
459 (void)info; (void)handler; (void)timeout;
461 }
462
463 //------------------------------------------------------------------------
465 //------------------------------------------------------------------------
466 virtual XRootDStatus Prepare( const std::vector<std::string> &fileList,
468 uint8_t priority,
469 ResponseHandler *handler,
470 uint16_t timeout )
471 {
472 (void)fileList; (void)flags; (void)priority; (void)handler;
473 (void)timeout;
475 }
476
477 //------------------------------------------------------------------------
479 //------------------------------------------------------------------------
480 virtual XRootDStatus SetXAttr( const std::string &path,
481 const std::vector<xattr_t> &attrs,
482 ResponseHandler *handler,
483 uint16_t timeout )
484 {
485 (void)path; (void)attrs; (void)handler; (void)timeout;
487 }
488
489 //------------------------------------------------------------------------
491 //------------------------------------------------------------------------
492 virtual XRootDStatus GetXAttr( const std::string &path,
493 const std::vector<std::string> &attrs,
494 ResponseHandler *handler,
495 uint16_t timeout )
496 {
497 (void)path; (void)attrs; (void)handler; (void)timeout;
499 }
500
501 //------------------------------------------------------------------------
503 //------------------------------------------------------------------------
504 virtual XRootDStatus DelXAttr( const std::string &path,
505 const std::vector<std::string> &attrs,
506 ResponseHandler *handler,
507 uint16_t timeout )
508 {
509 (void)path; (void)attrs; (void)handler; (void)timeout;
511 }
512
513 //------------------------------------------------------------------------
515 //------------------------------------------------------------------------
516 virtual XRootDStatus ListXAttr( const std::string &path,
517 ResponseHandler *handler,
518 uint16_t timeout )
519 {
520 (void)path; (void)handler; (void)timeout;
522 }
523
524 //------------------------------------------------------------------------
526 //------------------------------------------------------------------------
527 virtual bool SetProperty( const std::string &name,
528 const std::string &value )
529 {
530 (void)name; (void)value;
531 return false;
532 }
533
534 //------------------------------------------------------------------------
536 //------------------------------------------------------------------------
537 virtual bool GetProperty( const std::string &name,
538 std::string &value ) const
539 {
540 (void)name; (void)value;
541 return false;
542 }
543 };
544
545 //----------------------------------------------------------------------------
547 //----------------------------------------------------------------------------
549 {
550 public:
551 //------------------------------------------------------------------------
553 //------------------------------------------------------------------------
554 virtual ~PlugInFactory() {}
555
556 //------------------------------------------------------------------------
558 //------------------------------------------------------------------------
559 virtual FilePlugIn *CreateFile( const std::string &url ) = 0;
560
561 //------------------------------------------------------------------------
563 //------------------------------------------------------------------------
564 virtual FileSystemPlugIn *CreateFileSystem( const std::string &url ) = 0;
565 };
566}
567
568#endif // __XRD_CL_PLUGIN_INTERFACE__
Binary blob representation.
Definition XrdClBuffer.hh:34
An interface for file plug-ins.
Definition XrdClPlugInInterface.hh:39
virtual XRootDStatus Write(uint64_t offset, Buffer &&buffer, ResponseHandler *handler, uint16_t timeout=0)
Definition XrdClPlugInInterface.hh:135
virtual XRootDStatus Fcntl(const Buffer &arg, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:233
virtual XRootDStatus Read(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:82
virtual XRootDStatus Open(const std::string &url, OpenFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:48
virtual XRootDStatus Sync(ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:175
virtual bool IsOpen() const
Definition XrdClPlugInInterface.hh:254
virtual XRootDStatus Close(ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:61
virtual XRootDStatus WriteV(uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0)
Definition XrdClPlugInInterface.hh:220
virtual bool GetProperty(const std::string &name, std::string &value) const
Definition XrdClPlugInInterface.hh:272
virtual XRootDStatus VectorRead(const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:196
virtual XRootDStatus PgRead(uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:109
virtual XRootDStatus Truncate(uint64_t size, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:185
virtual XRootDStatus Visa(ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:244
virtual XRootDStatus Stat(bool force, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:71
virtual bool SetProperty(const std::string &name, const std::string &value)
Definition XrdClPlugInInterface.hh:262
virtual XRootDStatus Read(uint64_t offset, uint32_t size, Optional< uint64_t > fdoff, int fd, ResponseHandler *handler, uint16_t timeout=0)
Definition XrdClPlugInInterface.hh:95
virtual XRootDStatus Write(uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:122
virtual XRootDStatus VectorWrite(const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0)
Definition XrdClPlugInInterface.hh:208
virtual ~FilePlugIn()
Destructor.
Definition XrdClPlugInInterface.hh:44
virtual XRootDStatus PgWrite(uint64_t offset, uint32_t nbpgs, const void *buffer, std::vector< uint32_t > &cksums, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:161
virtual XRootDStatus Write(uint64_t offset, uint32_t size, Optional< uint64_t > fdoff, int fd, ResponseHandler *handler, uint16_t timeout=0)
Definition XrdClPlugInInterface.hh:147
An interface for file plug-ins.
Definition XrdClPlugInInterface.hh:284
virtual XRootDStatus Mv(const std::string &source, const std::string &dest, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:318
virtual XRootDStatus Ping(ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:401
virtual XRootDStatus SetXAttr(const std::string &path, const std::vector< xattr_t > &attrs, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:480
virtual XRootDStatus SendInfo(const std::string &info, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:455
virtual XRootDStatus DelXAttr(const std::string &path, const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:504
virtual XRootDStatus DirList(const std::string &path, DirListFlags::Flags flags, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:443
virtual XRootDStatus ChMod(const std::string &path, Access::Mode mode, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:389
virtual bool GetProperty(const std::string &name, std::string &value) const
Definition XrdClPlugInInterface.hh:537
virtual XRootDStatus MkDir(const std::string &path, MkDirFlags::Flags flags, Access::Mode mode, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:365
virtual XRootDStatus Locate(const std::string &path, OpenFlags::Flags flags, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:294
virtual XRootDStatus StatVFS(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:422
virtual XRootDStatus Protocol(ResponseHandler *handler, uint16_t timeout=0)
Definition XrdClPlugInInterface.hh:433
virtual XRootDStatus RmDir(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:378
virtual bool SetProperty(const std::string &name, const std::string &value)
Definition XrdClPlugInInterface.hh:527
virtual XRootDStatus Query(QueryCode::Code queryCode, const Buffer &arg, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:330
virtual XRootDStatus GetXAttr(const std::string &path, const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:492
virtual XRootDStatus Prepare(const std::vector< std::string > &fileList, PrepareFlags::Flags flags, uint8_t priority, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:466
virtual XRootDStatus Rm(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:354
virtual XRootDStatus DeepLocate(const std::string &path, OpenFlags::Flags flags, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:306
virtual XRootDStatus ListXAttr(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:516
virtual ~FileSystemPlugIn()
Destructor.
Definition XrdClPlugInInterface.hh:289
virtual XRootDStatus Stat(const std::string &path, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:411
virtual XRootDStatus Truncate(const std::string &path, uint64_t size, ResponseHandler *handler, uint16_t timeout)
Definition XrdClPlugInInterface.hh:342
Definition XrdClOptional.hh:44
Plugin factory.
Definition XrdClPlugInInterface.hh:549
virtual ~PlugInFactory()
Destructor.
Definition XrdClPlugInInterface.hh:554
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:1126
Request status.
Definition XrdClXRootDResponses.hh:219
Definition XrdClAction.hh:34
const uint16_t errNotImplemented
Operation is not implemented.
Definition XrdClStatus.hh:64
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:1055
Mode
Access mode.
Definition XrdClFileSystem.hh:122
Flags
Definition XrdClFileSystem.hh:156
Flags
Definition XrdClFileSystem.hh:143
Flags
Open flags, may be or'd when appropriate.
Definition XrdClFileSystem.hh:76
Flags
Definition XrdClFileSystem.hh:176
Code
XRootD query request codes.
Definition XrdClFileSystem.hh:53
Definition XrdOucIOVec.hh:65