43 int plen = strlen(pname);
54 while(p && p->pathlen >= plen)
55 {
if (p->pathlen == plen && !strcmp(p->pathname,pname))
64 if (pp) { p->next = pp->next; pp->next = p;}
65 else { p->next = next; next = p;}
79 int plen = strlen(pname);
88 while(p)
if (p->pathlen <= plen && !strncmp(p->pathname, pname, p->pathlen))
89 {pinfo = p->pathmask;
break;}
104 int rc, plen = strlen(pname);
118 while(p && p->pathlen >= plen)
119 {
if (p->pathlen == plen && !(rc = strcmp(p->pathname,pname)))
break;
120 else if (!strncmp(p->pathname,pname,plen)
122 {p->pathmask.
And(~(pinfo->
rovec)); p->pathmask.
Or(pinfo);}
130 if (!rc) {p->pathmask.
And(~(pinfo->
rovec)); p->pathmask.
Or(pinfo);}
133 { p->next = pp->next;
140 while(pp) {
if (pp->pathlen < plen
141 && !strncmp(pp->pathname,pname,pp->pathlen))
142 p->pathmask.
Or(&(pp->pathmask));
149 newmask = p->pathmask.
rovec | p->pathmask.
rwvec;
170 {
if (!pp->pathmask.
And(zmask))
171 {
if (prevp) {prevp->next = pp->next;
delete pp; pp = prevp->next;}
172 else { next = pp->next;
delete pp; pp = next;}
174 else {prevp = pp; pp = pp->next;}
188 int isrw = 0, plen = strlen(pname);
197 while(p)
if (p->pathlen <= plen && !strncmp(p->pathname, pname, p->pathlen))
198 {isrw = (p->pathmask.
rwvec != 0);
break;}
204 if (p)
return (isrw ?
"w" :
"r");
214 if (pathmask.
ssvec)
return (pathmask.
rwvec ?
"ws" :
"rs");
215 return (pathmask.
rwvec ?
"w" :
"r");
unsigned long long SMask_t
int And(const SMask_t mask)
void Or(const XrdCmsPInfo *pi)
void Remove(SMask_t mask)
int Find(const char *pname, XrdCmsPInfo &masks)
const char * Type(const char *pname)
int Add(const char *pname, XrdCmsPInfo *pinfo)
SMask_t Insert(const char *pname, XrdCmsPInfo *pinfo)