00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __XRD_CL_PLUGIN_INTERFACE__
00026 #define __XRD_CL_PLUGIN_INTERFACE__
00027
00028 #include "XrdCl/XrdClFile.hh"
00029 #include "XrdCl/XrdClFileSystem.hh"
00030
00031 namespace XrdCl
00032 {
00033
00035
00036 class FilePlugIn
00037 {
00038 public:
00039
00041
00042 virtual ~FilePlugIn() {}
00043
00045
00046 virtual XRootDStatus Open( const std::string &url,
00047 OpenFlags::Flags flags,
00048 Access::Mode mode,
00049 ResponseHandler *handler,
00050 uint16_t timeout )
00051 {
00052 (void)url; (void)flags; (void)mode; (void)handler; (void)timeout;
00053 return XRootDStatus( stError, errNotImplemented );
00054 }
00055
00056
00058
00059 virtual XRootDStatus Close( ResponseHandler *handler,
00060 uint16_t timeout )
00061 {
00062 (void)handler; (void)timeout;
00063 return XRootDStatus( stError, errNotImplemented );
00064 }
00065
00066
00068
00069 virtual XRootDStatus Stat( bool force,
00070 ResponseHandler *handler,
00071 uint16_t timeout )
00072 {
00073 (void)force; (void)handler; (void)timeout;
00074 return XRootDStatus( stError, errNotImplemented );
00075 }
00076
00077
00078
00080
00081 virtual XRootDStatus Read( uint64_t offset,
00082 uint32_t size,
00083 void *buffer,
00084 ResponseHandler *handler,
00085 uint16_t timeout )
00086 {
00087 (void)offset; (void)size; (void)buffer; (void)handler; (void)timeout;
00088 return XRootDStatus( stError, errNotImplemented );
00089 }
00090
00091
00093
00094 virtual XRootDStatus Write( uint64_t offset,
00095 uint32_t size,
00096 const void *buffer,
00097 ResponseHandler *handler,
00098 uint16_t timeout )
00099 {
00100 (void)offset; (void)size; (void)buffer; (void)handler; (void)timeout;
00101 return XRootDStatus( stError, errNotImplemented );
00102 }
00103
00104
00106
00107 virtual XRootDStatus Sync( ResponseHandler *handler,
00108 uint16_t timeout )
00109 {
00110 (void)handler; (void)timeout;
00111 return XRootDStatus( stError, errNotImplemented );
00112 }
00113
00114
00116
00117 virtual XRootDStatus Truncate( uint64_t size,
00118 ResponseHandler *handler,
00119 uint16_t timeout )
00120 {
00121 (void)size; (void)handler; (void)timeout;
00122 return XRootDStatus( stError, errNotImplemented );
00123 }
00124
00125
00127
00128 virtual XRootDStatus VectorRead( const ChunkList &chunks,
00129 void *buffer,
00130 ResponseHandler *handler,
00131 uint16_t timeout )
00132 {
00133 (void)chunks; (void)buffer; (void)handler; (void)timeout;
00134 return XRootDStatus( stError, errNotImplemented );
00135 }
00136
00137
00139
00140 virtual XRootDStatus Fcntl( const Buffer &arg,
00141 ResponseHandler *handler,
00142 uint16_t timeout )
00143 {
00144 (void)arg; (void)handler; (void)timeout;
00145 return XRootDStatus( stError, errNotImplemented );
00146 }
00147
00148
00150
00151 virtual XRootDStatus Visa( ResponseHandler *handler,
00152 uint16_t timeout )
00153 {
00154 (void)handler; (void)timeout;
00155 return XRootDStatus( stError, errNotImplemented );
00156 }
00157
00158
00160
00161 virtual bool IsOpen() const
00162 {
00163 return false;
00164 }
00165
00166
00168
00169 virtual bool SetProperty( const std::string &name,
00170 const std::string &value )
00171 {
00172 (void)name; (void)value;
00173 return false;
00174 }
00175
00176
00178
00179 virtual bool GetProperty( const std::string &name,
00180 std::string &value ) const
00181 {
00182 (void)name; (void)value;
00183 return false;
00184 }
00185 };
00186
00187
00189
00190 class FileSystemPlugIn
00191 {
00192 public:
00193
00195
00196 virtual ~FileSystemPlugIn() {}
00197
00198
00200
00201 virtual XRootDStatus Locate( const std::string &path,
00202 OpenFlags::Flags flags,
00203 ResponseHandler *handler,
00204 uint16_t timeout )
00205 {
00206 (void)path; (void)flags; (void)handler; (void)timeout;
00207 return XRootDStatus( stError, errNotImplemented );
00208 }
00209
00210
00212
00213 virtual XRootDStatus Mv( const std::string &source,
00214 const std::string &dest,
00215 ResponseHandler *handler,
00216 uint16_t timeout )
00217 {
00218 (void)source; (void)dest; (void)handler; (void)timeout;
00219 return XRootDStatus( stError, errNotImplemented );
00220 }
00221
00222
00224
00225 virtual XRootDStatus Query( QueryCode::Code queryCode,
00226 const Buffer &arg,
00227 ResponseHandler *handler,
00228 uint16_t timeout )
00229 {
00230 (void)queryCode; (void)arg; (void)handler; (void)timeout;
00231 return XRootDStatus( stError, errNotImplemented );
00232 }
00233
00234
00236
00237 virtual XRootDStatus Truncate( const std::string &path,
00238 uint64_t size,
00239 ResponseHandler *handler,
00240 uint16_t timeout )
00241 {
00242 (void)path; (void)size; (void)handler; (void)timeout;
00243 return XRootDStatus( stError, errNotImplemented );
00244 }
00245
00246
00248
00249 virtual XRootDStatus Rm( const std::string &path,
00250 ResponseHandler *handler,
00251 uint16_t timeout )
00252 {
00253 (void)path; (void)handler; (void)timeout;
00254 return XRootDStatus( stError, errNotImplemented );
00255 }
00256
00257
00259
00260 virtual XRootDStatus MkDir( const std::string &path,
00261 MkDirFlags::Flags flags,
00262 Access::Mode mode,
00263 ResponseHandler *handler,
00264 uint16_t timeout )
00265 {
00266 (void)path; (void)flags; (void)mode; (void)handler; (void)timeout;
00267 return XRootDStatus( stError, errNotImplemented );
00268 }
00269
00270
00272
00273 virtual XRootDStatus RmDir( const std::string &path,
00274 ResponseHandler *handler,
00275 uint16_t timeout )
00276 {
00277 (void)path; (void)handler; (void)timeout;
00278 return XRootDStatus( stError, errNotImplemented );
00279 }
00280
00281
00283
00284 virtual XRootDStatus ChMod( const std::string &path,
00285 Access::Mode mode,
00286 ResponseHandler *handler,
00287 uint16_t timeout )
00288 {
00289 (void)path; (void)mode; (void)handler; (void)timeout;
00290 return XRootDStatus( stError, errNotImplemented );
00291 }
00292
00293
00295
00296 virtual XRootDStatus Ping( ResponseHandler *handler,
00297 uint16_t timeout )
00298 {
00299 (void)handler; (void)timeout;
00300 return XRootDStatus( stError, errNotImplemented );
00301 }
00302
00303
00305
00306 virtual XRootDStatus Stat( const std::string &path,
00307 ResponseHandler *handler,
00308 uint16_t timeout )
00309 {
00310 (void)path; (void)handler; (void)timeout;
00311 return XRootDStatus( stError, errNotImplemented );
00312 }
00313
00314
00316
00317 virtual XRootDStatus StatVFS( const std::string &path,
00318 ResponseHandler *handler,
00319 uint16_t timeout )
00320 {
00321 (void)path; (void)handler; (void)timeout;
00322 return XRootDStatus( stError, errNotImplemented );
00323 }
00324
00325
00327
00328 virtual XRootDStatus Protocol( ResponseHandler *handler,
00329 uint16_t timeout = 0 )
00330 {
00331 (void)handler; (void)timeout;
00332 return XRootDStatus( stError, errNotImplemented );
00333 }
00334
00335
00337
00338 virtual XRootDStatus DirList( const std::string &path,
00339 DirListFlags::Flags flags,
00340 ResponseHandler *handler,
00341 uint16_t timeout )
00342 {
00343 (void)path; (void)flags; (void)handler; (void)timeout;
00344 return XRootDStatus( stError, errNotImplemented );
00345 }
00346
00347
00349
00350 virtual XRootDStatus SendInfo( const std::string &info,
00351 ResponseHandler *handler,
00352 uint16_t timeout )
00353 {
00354 (void)info; (void)handler; (void)timeout;
00355 return XRootDStatus( stError, errNotImplemented );
00356 }
00357
00358
00360
00361 virtual XRootDStatus Prepare( const std::vector<std::string> &fileList,
00362 PrepareFlags::Flags flags,
00363 uint8_t priority,
00364 ResponseHandler *handler,
00365 uint16_t timeout )
00366 {
00367 (void)fileList; (void)flags; (void)priority; (void)handler;
00368 (void)timeout;
00369 return XRootDStatus( stError, errNotImplemented );
00370 }
00371
00372
00374
00375 virtual bool SetProperty( const std::string &name,
00376 const std::string &value )
00377 {
00378 (void)name; (void)value;
00379 return false;
00380 }
00381
00382
00384
00385 virtual bool GetProperty( const std::string &name,
00386 std::string &value ) const
00387 {
00388 (void)name; (void)value;
00389 return false;
00390 }
00391 };
00392
00393
00395
00396 class PlugInFactory
00397 {
00398 public:
00399
00401
00402 virtual ~PlugInFactory() {}
00403
00404
00406
00407 virtual FilePlugIn *CreateFile( const std::string &url ) = 0;
00408
00409
00411
00412 virtual FileSystemPlugIn *CreateFileSystem( const std::string &url ) = 0;
00413 };
00414 }
00415
00416 #endif // __XRD_CL_PLUGIN_INTERFACE__