// @(#)root/netxng:$Id$
/*************************************************************************
 * 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_TNetXNGFileStager
#define ROOT_TNetXNGFileStager

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// TNetXNGFileStager                                                          //
//                                                                            //
// Authors: Lukasz Janyst, Justin Salmon                                      //
//          CERN, 2013                                                        //
//                                                                            //
// Enables access to XRootD staging capabilities using the new client.        //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#include "TFileStager.h"

class TCollection;
class TNetXNGSystem;
class TFileCollection;

class TNetXNGFileStager: public TFileStager {

private:
   TNetXNGSystem *fSystem; // Used to access filesystem interface

public:
   TNetXNGFileStager(const char *url = "");
   virtual ~TNetXNGFileStager();

   Bool_t IsStaged(const char *path);
   Int_t  Locate(const char *path, TString &endpath);
   Int_t  LocateCollection(TFileCollection *fc, Bool_t addDummyUrl = kFALSE);
   Bool_t Matches(const char *s);
   Bool_t Stage(const char *path, Option_t *opt = 0);
   Bool_t Stage(TCollection *pathlist, Option_t *opt = 0);
   Bool_t IsValid() const { return (fSystem ? kTRUE : kFALSE); }

private:
   UChar_t ParseStagePriority(Option_t *opt);

   ClassDef( TNetXNGFileStager, 0 ) //! Interface to a 'XRD' staging
};

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