Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:11:37

0001 // @(#)root/net:$Id$
0002 // Author: Adrien Devresse and Fabrizio Furano
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2013, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TDavixSystem
0013 #define ROOT_TDavixSystem
0014 
0015 //////////////////////////////////////////////////////////////////////////
0016 //                                                                      //
0017 // TDavixSystem                                                         //
0018 //                                                                      //
0019 // A TSystem specialization for HTTP and WebDAV                         //
0020 // It supports HTTP and HTTPS in a number of dialects and options       //
0021 //  e.g. S3 is one of them                                              //
0022 // Other caracteristics come from the full support of Davix,            //
0023 //  e.g. full redirection support in any circumstance                   //
0024 //                                                                      //
0025 // Authors:     Adrien Devresse (CERN IT/SDC)                           //
0026 //              Fabrizio Furano (CERN IT/SDC)                           //
0027 //                                                                      //
0028 // September 2013                                                       //
0029 //                                                                      //
0030 //////////////////////////////////////////////////////////////////////////
0031 
0032 #include "TSystem.h"
0033 
0034 class TDavixFileInternal;
0035 
0036 class TDavixSystem : public TSystem {
0037 private:
0038    TDavixFileInternal* d_ptr;
0039 
0040 public:
0041    TDavixSystem();
0042    TDavixSystem(const char *url);
0043 
0044    virtual ~TDavixSystem();
0045 
0046    virtual void FreeDirectory(void *dirp);
0047    virtual const char *GetDirEntry(void *dirp);
0048    virtual Bool_t ConsistentWith(const char *path, void *dirptr);
0049 
0050    virtual Int_t GetPathInfo(const char* path, FileStat_t &buf);
0051    virtual Bool_t IsPathLocal(const char *path);
0052    virtual Int_t Locate(const char* path, TString &endurl);
0053    virtual Int_t MakeDirectory(const char* dir);
0054    virtual void *OpenDirectory(const char* dir);
0055    virtual int Unlink(const char *path);
0056 
0057    ClassDef(TDavixSystem, 0);
0058 };
0059 
0060 #endif