12 #ifndef ROOT_TXNetSystem
13 #define ROOT_TXNetSystem
38 class TXNetSystemConnectGuard;
40 typedef void* VecStringVP_t;
42 class TXrdClientAdminWrapper :
public TNamed {
44 TXrdClientAdminWrapper(
const char *key, XrdClientAdmin *ca) : TNamed(key,
""), fXCA(ca) { }
45 virtual ~TXrdClientAdminWrapper();
49 class TXNetSystem :
public TNetSystem {
51 friend class TXNetSystemConnectGuard;
58 VecStringVP_t fDirList;
62 static Bool_t fgInitDone;
63 static Bool_t fgRootdBC;
65 XrdClientAdmin *Connect(
const char *url);
66 void *GetDirPtr()
const {
return fDirp; }
69 static THashList fgAddrFQDN;
70 static THashList fgAdminHash;
71 static XrdClientAdmin *GetClientAdmin(
const char *url);
72 static TString GetKey(
const char *url);
75 TXNetSystem(Bool_t owner = kTRUE);
76 TXNetSystem(
const char *url, Bool_t owner = kTRUE);
77 virtual ~TXNetSystem() { }
79 Bool_t AccessPathName(
const char *path, EAccessMode mode);
80 virtual Bool_t ConsistentWith(
const char *path,
void *dirptr);
81 virtual void FreeDirectory(
void *dirp);
82 virtual const char *GetDirEntry(
void *dirp);
83 virtual Int_t GetPathInfo(
const char* path, FileStat_t &buf);
84 virtual Bool_t IsPathLocal(
const char *path);
85 virtual Int_t Locate(
const char* path, TString &endurl);
86 virtual Int_t MakeDirectory(
const char* dir);
87 virtual void *OpenDirectory(
const char* dir);
88 virtual int Unlink(
const char *path);
91 Bool_t GetPathsInfo(
const char *paths, UChar_t *info);
92 Bool_t IsOnline(
const char *path);
93 Bool_t Prepare(
const char *path, UChar_t opt = 8, UChar_t prio = 0);
94 Int_t Prepare(TCollection *paths,
95 UChar_t opt = 8, UChar_t prio = 0, TString *buf = 0);
97 ClassDef(TXNetSystem,0)
103 class TXNetSystemConnectGuard {
106 XrdClientAdmin *fClientAdmin;
109 TXNetSystemConnectGuard(TXNetSystem *xn,
const char *url);
110 ~TXNetSystemConnectGuard();
112 bool IsValid()
const {
return ((fClientAdmin) ? 1 : 0); }
114 XrdClientAdmin *ClientAdmin()
const {
return fClientAdmin; }
116 void NotifyLastError();