xrootd
Loading...
Searching...
No Matches
XrdXmlMetaLink.hh
Go to the documentation of this file.
1#ifndef __XRDXMLMETALINK_HH__
2#define __XRDXMLMETALINK_HH__
3/******************************************************************************/
4/* */
5/* X r d X m l M e t a L i n k . h h */
6/* */
7/* (c) 2015 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* Produced by Andrew Hanushevsky for Stanford University under contract */
9/* DE-AC02-76-SFO0515 with the Department of Energy */
10/* */
11/* This file is part of the XRootD software suite. */
12/* */
13/* XRootD is free software: you can redistribute it and/or modify it under */
14/* the terms of the GNU Lesser General Public License as published by the */
15/* Free Software Foundation, either version 3 of the License, or (at your */
16/* option) any later version. */
17/* */
18/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21/* License for more details. */
22/* */
23/* You should have received a copy of the GNU Lesser General Public License */
24/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26/* */
27/* The copyright holder's institutional names and contributor's names may not */
28/* be used to endorse or promote products derived from this software without */
29/* specific prior written permission of the institution or contributor. */
30/******************************************************************************/
31
32#include <cstdlib>
33#include <cstring>
34
37
38//-----------------------------------------------------------------------------
44//-----------------------------------------------------------------------------
45
47{
48public:
49
50//-----------------------------------------------------------------------------
67//-----------------------------------------------------------------------------
68
69XrdOucFileInfo *Convert(const char *fbuff, int blen=0);
70
71//-----------------------------------------------------------------------------
92//-----------------------------------------------------------------------------
93
94XrdOucFileInfo **ConvertAll(const char *fbuff, int &count, int blen=0);
95
96//-----------------------------------------------------------------------------
101//-----------------------------------------------------------------------------
102
103static void DeleteAll(XrdOucFileInfo **vecp, int vecn);
104
105//-----------------------------------------------------------------------------
113//-----------------------------------------------------------------------------
114
115const char *GetStatus(int &ecode) {ecode = eCode; return eText;}
116
117//-----------------------------------------------------------------------------
134//-----------------------------------------------------------------------------
135
136 XrdXmlMetaLink(const char *protos="root:xroot:",
137 const char *rdprot="xroot:",
138 const char *rdhost=0,
139 const char *encode=0
140 ) : reader(0),
141 fileList(0), lastFile(0), currFile(0),
142 prots(protos ? strdup(protos) : 0),
143 encType(encode ? strdup(encode) : 0),
144 rdProt(rdprot), rdHost(rdhost),
145 fileCnt(0), eCode(0),
146 doAll(false), noUrl(true)
147 {*eText = 0; *tmpFn = 0;}
148
149//-----------------------------------------------------------------------------
151//-----------------------------------------------------------------------------
152
154 if (encType) free(encType);
155 }
156
157private:
158bool GetFile(const char *scope);
159bool GetFileInfo(const char *scope);
160bool GetGLfn();
161bool GetHash();
162void GetRdrError(const char *why);
163bool GetSize();
164bool GetUrl();
165void GetName();
166bool PutFile(const char *buff, int blen);
167bool UrlOK(char *url);
168
173char *prots;
175const char *rdProt;
176const char *rdHost;
179bool doAll;
180bool noUrl;
181char tmpFn[64];
182char eText[256];
183};
184#endif
Definition XrdOucFileInfo.hh:46
Definition XrdXmlReader.hh:41