#include <XrdOucMsubs.hh>
Definition at line 90 of file XrdOucMsubs.hh.
◆ XrdOucMsubs()
Definition at line 51 of file XrdOucMsubs.cc.
60 vName[vLFN2] =
"$LFN2";
61 vName[vPFN2] =
"$PFN2";
62 vName[vRFN2] =
"$RFN2";
63 vName[vFM] =
"$FMODE";
64 vName[vNFY] =
"$NOTIFY";
65 vName[vOFL] =
"$OFLAG";
66 vName[vOPT] =
"$OPTS";
67 vName[vPTY] =
"$PRTY";
68 vName[vUSR] =
"$USER";
69 vName[vHST] =
"$HOST";
79 mData[0] = 0; mDlen[0] = 0;
◆ ~XrdOucMsubs()
XrdOucMsubs::~XrdOucMsubs |
( |
| ) |
|
Definition at line 88 of file XrdOucMsubs.cc.
91 if (mText) free(mText);
93 for (i = 0; i < numElem; i++)
if (mDlen[i] < 0) free(mData[i]);
◆ Parse()
int XrdOucMsubs::Parse |
( |
const char * |
oname, |
|
|
char * |
msg |
|
) |
| |
Definition at line 100 of file XrdOucMsubs.cc.
102 char ctmp, *vp, *ip, *lastp, *infop;
108 lastp = infop = mText = strdup(msg);
109 while ((ip = index(infop,
'$')) && j <
maxElem)
110 if (isalnum(*(ip+1)) && (infop == ip || *(ip-1) !=
'\\'))
111 {
if ((mDlen[j] = ip-lastp)) mData[j++] = lastp;
113 while(isalnum(*ip) || *ip ==
'.') ip++;
114 ctmp = *ip; *ip =
'\0';
116 mData[j] = vp = strdup(vp); mData[j++]++;
117 *ip = ctmp; lastp = infop = ip;
118 if (isupper(*(vp+1)))
119 for (i = 1; i < vMax; i++)
120 if (!strcmp(vp, vName[i]))
121 {mDlen[j-1] = i; mData[j-1] = 0; free(vp);
break;}
122 }
else if (ip != infop && *(ip-1) ==
'\\')
123 {
if ((mDlen[j] = (ip-lastp)-1) > 0) mData[j++] = lastp;
124 lastp = ip; infop = ip+1;
130 {
if ((mDlen[j] = strlen(lastp))) mData[j++] = lastp;
133 eDest->
Emsg(dName,
"Too many variables in", dName,
"string.");
int Emsg(const char *esfx, int ecode, const char *text1, const char *text2=0)
References XrdSysError::Emsg(), and maxElem.
Referenced by XrdOssSys::ConfigStageC(), and XrdCmsPrepare::setParms().
◆ Subs()
Definition at line 146 of file XrdOucMsubs.cc.
152 for (k = 0; k < numElem; k++)
154 {Data[k] = getVal(
Info, mDlen[k]);
155 Dlen[k] = strlen(Data[k]);
157 else if (mDlen[k] < 0)
158 {
if ((Data[k] =
Info.Env->Get(mData[k])))
159 Dlen[k] = strlen(Data[k]);
160 else {Data[k]=mData[k]-1; Dlen[k]=(-mDlen[k]);}
162 else {Data[k] = mData[k]; Dlen[k] = mDlen[k];}
References Info.
Referenced by XrdCmsPrepare::Add(), and XrdOssSys::Stage_QT().
◆ maxElem
const int XrdOucMsubs::maxElem = 32 |
|
static |
The documentation for this class was generated from the following files: