Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:12:17

0001 // @(#)root/netxng:$Id$
0002 /*************************************************************************
0003  * Copyright (C) 1995-2013, Rene Brun and Fons Rademakers.               *
0004  * All rights reserved.                                                  *
0005  *                                                                       *
0006  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0007  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0008  *************************************************************************/
0009 
0010 #ifndef ROOT_TNetXNGFileStager
0011 #define ROOT_TNetXNGFileStager
0012 
0013 ////////////////////////////////////////////////////////////////////////////////
0014 //                                                                            //
0015 // TNetXNGFileStager                                                          //
0016 //                                                                            //
0017 // Authors: Lukasz Janyst, Justin Salmon                                      //
0018 //          CERN, 2013                                                        //
0019 //                                                                            //
0020 // Enables access to XRootD staging capabilities using the new client.        //
0021 //                                                                            //
0022 ////////////////////////////////////////////////////////////////////////////////
0023 
0024 #include "TFileStager.h"
0025 
0026 class TCollection;
0027 class TNetXNGSystem;
0028 class TFileCollection;
0029 
0030 class TNetXNGFileStager: public TFileStager {
0031 
0032 private:
0033    TNetXNGSystem *fSystem; // Used to access filesystem interface
0034 
0035 public:
0036    TNetXNGFileStager(const char *url = "");
0037    virtual ~TNetXNGFileStager();
0038 
0039    Bool_t IsStaged(const char *path) override;
0040    Int_t  Locate(const char *path, TString &endpath) override;
0041    Int_t  LocateCollection(TFileCollection *fc, Bool_t addDummyUrl = kFALSE) override;
0042    Bool_t Matches(const char *s) override;
0043    Bool_t Stage(const char *path, Option_t *opt = nullptr) override;
0044    Bool_t Stage(TCollection *pathlist, Option_t *opt = nullptr) override;
0045    Bool_t IsValid() const override { return fSystem ? kTRUE : kFALSE; }
0046 
0047 private:
0048    UChar_t ParseStagePriority(Option_t *opt);
0049 
0050    ClassDefOverride(TNetXNGFileStager, 0) //! Interface to a 'XRD' staging
0051 };
0052 
0053 #endif