1#ifndef __XROOTD_XPATH__
2#define __XROOTD_XPATH__
37#define XROOTDXP_NOLK 2
38#define XROOTDXP_NOCGI 4
39#define XROOTDXP_NOSLASH 8
40#define XROOTDXP_NOMWCHK 16
47inline int Opts() {
return pathopt;}
48inline char *
Path() {
return path;}
49inline char *
Path(
int &PLen)
50 {PLen = pathlen;
return path;}
51 void Set(
int opts,
const char *pathdata=0)
54 {
if (path) free(path);
55 pathlen = strlen(pathdata);
56 path = strdup(pathdata);
64 {
while(p && newp->pathlen < p->pathlen)
65 {pp = p; p = p->next;}
67 while(p && newp->pathlen >= p->pathlen)
68 {pp = p; p = p->next;}
71 if (pp) pp->next = newp;
75inline int Validate(
const char *pd,
const int pl=0)
76 {
int plen = (pl ? pl : strlen(pd));
78 while(p && plen >= p->pathlen)
79 {
if (!strncmp(pd, p->path, p->pathlen))
88 pathopt = popt | flags;
89 pathlen = strlen(pathdata);
90 path = strdup(pathdata);
int Validate(const char *pd, const int pl=0)
void Insert(const char *pd, int popt=0, int flags=XROOTDXP_OK)
void Set(int opts, const char *pathdata=0)
XrdXrootdXPath(const char *pathdata="", int popt=0, int flags=XROOTDXP_OK)