ROOT logo
// @(#)root/net:$Id$
// Author: Adrien Devresse and Fabrizio Furano

/*************************************************************************
 * Copyright (C) 1995-2013, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TDavixSystem
#define ROOT_TDavixSystem

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TDavixSystem                                                         //
//                                                                      //
// A TSystem specialization for HTTP and WebDAV                         //
// It supports HTTP and HTTPS in a number of dialects and options       //
//  e.g. S3 is one of them                                              //
// Other caracteristics come from the full support of Davix,            //
//  e.g. full redirection support in any circumstance                   //
//                                                                      //
// Authors:     Adrien Devresse (CERN IT/SDC)                           //
//              Fabrizio Furano (CERN IT/SDC)                           //
//                                                                      //
// September 2013                                                       //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "TUrl.h"
#include "TSystem.h"
#include "TMutex.h"


class TDavixFileInternal;
struct Davix_fd;


class TDavixSystem : public TSystem {
private:
   TDavixFileInternal* d_ptr;

public:
   TDavixSystem();
   TDavixSystem(const char *url);

   virtual ~TDavixSystem();

   virtual void FreeDirectory(void *dirp);
   virtual const char *GetDirEntry(void *dirp);
   virtual Bool_t ConsistentWith(const char *path, void *dirptr);

   virtual Int_t GetPathInfo(const char* path, FileStat_t &buf);
   virtual Bool_t IsPathLocal(const char *path);
   virtual Int_t Locate(const char* path, TString &endurl);
   virtual Int_t MakeDirectory(const char* dir);
   virtual void *OpenDirectory(const char* dir);
   virtual int Unlink(const char *path);

   ClassDef(TDavixSystem, 0);
};

#endif
 TDavixSystem.h:1
 TDavixSystem.h:2
 TDavixSystem.h:3
 TDavixSystem.h:4
 TDavixSystem.h:5
 TDavixSystem.h:6
 TDavixSystem.h:7
 TDavixSystem.h:8
 TDavixSystem.h:9
 TDavixSystem.h:10
 TDavixSystem.h:11
 TDavixSystem.h:12
 TDavixSystem.h:13
 TDavixSystem.h:14
 TDavixSystem.h:15
 TDavixSystem.h:16
 TDavixSystem.h:17
 TDavixSystem.h:18
 TDavixSystem.h:19
 TDavixSystem.h:20
 TDavixSystem.h:21
 TDavixSystem.h:22
 TDavixSystem.h:23
 TDavixSystem.h:24
 TDavixSystem.h:25
 TDavixSystem.h:26
 TDavixSystem.h:27
 TDavixSystem.h:28
 TDavixSystem.h:29
 TDavixSystem.h:30
 TDavixSystem.h:31
 TDavixSystem.h:32
 TDavixSystem.h:33
 TDavixSystem.h:34
 TDavixSystem.h:35
 TDavixSystem.h:36
 TDavixSystem.h:37
 TDavixSystem.h:38
 TDavixSystem.h:39
 TDavixSystem.h:40
 TDavixSystem.h:41
 TDavixSystem.h:42
 TDavixSystem.h:43
 TDavixSystem.h:44
 TDavixSystem.h:45
 TDavixSystem.h:46
 TDavixSystem.h:47
 TDavixSystem.h:48
 TDavixSystem.h:49
 TDavixSystem.h:50
 TDavixSystem.h:51
 TDavixSystem.h:52
 TDavixSystem.h:53
 TDavixSystem.h:54
 TDavixSystem.h:55
 TDavixSystem.h:56
 TDavixSystem.h:57
 TDavixSystem.h:58
 TDavixSystem.h:59
 TDavixSystem.h:60
 TDavixSystem.h:61
 TDavixSystem.h:62
 TDavixSystem.h:63
 TDavixSystem.h:64
 TDavixSystem.h:65