165{ char buff[512];
166 int numE = 0;
167
168
169
170 if (FindSet(setName,-1)) return false;
171
172
173
174 for(
int i = 0; setVec[i].
varName; i++) numE++;
175 if (!numE) return true;
176
177
178
179 int sType;
180 switch(setType)
185 default: sType = isPlug; break;
186 }
187
188
189
190 RegInfo* regInfo = new RegInfo(setName, sType);
191 regInfo->Json.key.reserve(numE);
192 regInfo->Xml.keyBeg.reserve(numE);
193 regInfo->Xml.keyEnd.reserve(numE);
195
196
197
198 for(int i = 0;i < numE; i++)
199 {snprintf(buff, sizeof(buff), ",\"%s\":", setVec[i].varName);
200 regInfo->Json.key.push_back(strdup(buff));
201 snprintf(buff, sizeof(buff), "<%s>", setVec[i].varName);
202 regInfo->Xml.keyBeg.push_back(strdup(buff));
203 snprintf(buff, sizeof(buff), "</%s>", setVec[i].varName);
204 regInfo->Xml.keyEnd.push_back(strdup(buff));
205 regInfo->keyVal[i] = &setVec[i].
varValu;
206 }
207 regInfo->Json.key[0]++;
208
209
210
211 snprintf(buff, sizeof(buff), "\"stats_%s\":{", setName);
212 regInfo->Json.hdr = strdup(buff);
213 snprintf(buff, sizeof(buff), "<stats id=\"%s\">", setName);
214 regInfo->Xml.hdr = strdup(buff);
215
216
217
218 regVec.push_back(regInfo);
219
220
221
222 char etxt[256];
223 snprintf(etxt, sizeof(etxt), "%s set %s registered with %d variable(s)",
225 Log.
Say(
"Config monitor: ", etxt);
226 return true;
227}
XrdSys::RAtomic< unsigned int > RAtomic_uint
void Say(const char *text1, const char *text2=0, const char *txt3=0, const char *text4=0, const char *text5=0, const char *txt6=0)