// @(#)root/netx:$Id$
// Author: A. Peters, G. Ganis   7/2/2007

/*************************************************************************
 * Copyright (C) 1995-2002, 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_TXNetFileStager
#define ROOT_TXNetFileStager

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TXNetFileStager                                                      //
//                                                                      //
// Interface to the 'XRD' staging capabilities.                         //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TFileStager
#include "TFileStager.h"
#endif

class TCollection;
class TXNetSystem;
class TFileCollection;

class TXNetFileStager : public TFileStager {

private:
   TString        fPrefix; // prefix to prepend to requests
   TXNetSystem   *fSystem; // instance of the admin interface

   static void    GetPrefix(const char *url, TString &pfx);

public:
   TXNetFileStager(const char *stager = "");
   virtual ~TXNetFileStager();

   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); }

   void    Print(Option_t *option = "") const;

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

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