1 #ifndef __XRDOUCPINKING_HH__
2 #define __XRDOUCPINKING_HH__
46 struct XrdVersionInfo;
62 void Add(
const char *path,
65 {
if (push) pinVec.push_back(pinInfo(path, parms));
66 else pinVec[0] = pinInfo(path, parms);
77 T *
Load(
const char *Symbol);
94 XrdVersionInfo *vinfo=0)
95 : Drctv(drctv), eInfo(envR), eMsg(errR), vInfo(vinfo)
96 {pinVec.push_back(pinInfo(0,0));}
111 XrdVersionInfo *vInfo;
119 pinInfo(
const char *pth,
const char *prm)
120 : path(pth ? pth :
""), parm(prm ? prm :
""), pinP(0) {}
122 ~pinInfo() {
delete pinP;}
125 std::vector<pinInfo> pinVec;
134 typename std::vector<pinInfo>::iterator it;
136 for (it = pinVec.begin(); it != pinVec.end(); it++)
137 {
if (it->path.size() == 0)
continue;
141 || !(lastPIN = objPIN->
getInstance(it->parm.c_str(), eInfo,
142 *(
eMsg.logger()), lastPIN)))
void Add(const char *path, const char *parms, bool push=false)
T * Load(const char *Symbol)
XrdOucPinKing(const char *drctv, XrdOucEnv &envR, XrdSysError &errR, XrdVersionInfo *vinfo=0)
virtual T * getInstance(const char *parms, XrdOucEnv &envR, XrdSysLogger &logR, T *prevP)=0