xrootd
Loading...
Searching...
No Matches
XrdOucPinLoader.hh
Go to the documentation of this file.
1#ifndef __XRDOUCPINLOADER_HH__
2#define __XRDOUCPINLOADER_HH__
3/******************************************************************************/
4/* */
5/* X r d O u c P i n L o a d e r . h h */
6/* */
7/* (c) 2014 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* Produced by Andrew Hanushevsky for Stanford University under contract */
9/* DE-AC02-76-SFO0515 with the Department of Energy */
10/* */
11/* This file is part of the XRootD software suite. */
12/* */
13/* XRootD is free software: you can redistribute it and/or modify it under */
14/* the terms of the GNU Lesser General Public License as published by the */
15/* Free Software Foundation, either version 3 of the License, or (at your */
16/* option) any later version. */
17/* */
18/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21/* License for more details. */
22/* */
23/* You should have received a copy of the GNU Lesser General Public License */
24/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26/* */
27/* The copyright holder's institutional names and contributor's names may not */
28/* be used to endorse or promote products derived from this software without */
29/* specific prior written permission of the institution or contributor. */
30/******************************************************************************/
31
32//------------------------------------------------------------------------------
34//------------------------------------------------------------------------------
35
36//------------------------------------------------------------------------------
43//------------------------------------------------------------------------------
44
45class XrdSysError;
46class XrdSysPlugin;
47struct XrdVersionInfo;
48
50{
51public:
52
53//------------------------------------------------------------------------------
60//------------------------------------------------------------------------------
61
62XrdSysPlugin *Export() {XrdSysPlugin *tmp = piP; piP = 0; return tmp;}
63
64//------------------------------------------------------------------------------
70//------------------------------------------------------------------------------
71
72void Global(bool glbl) {global = glbl;}
73
74//------------------------------------------------------------------------------
79//------------------------------------------------------------------------------
80
81const char *LastMsg() {return (errBP ? errBP : "");}
82
83//------------------------------------------------------------------------------
89//------------------------------------------------------------------------------
90
91const char *Path() {return theLib;}
92
93//------------------------------------------------------------------------------
101//------------------------------------------------------------------------------
102
103void *Resolve(const char *symbl, int mcnt=1);
104
105//------------------------------------------------------------------------------
111//------------------------------------------------------------------------------
112
113void Unload(bool dodel=false);
114
115//------------------------------------------------------------------------------
125//------------------------------------------------------------------------------
126
128 XrdVersionInfo *vInfo,
129 const char *drctv,
130 const char *plib);
131
132//------------------------------------------------------------------------------
141//------------------------------------------------------------------------------
142
143 XrdOucPinLoader(char *eBuff,
144 int eBlen,
145 XrdVersionInfo *vInfo,
146 const char *drctv,
147 const char *plib);
148
149//------------------------------------------------------------------------------
157//------------------------------------------------------------------------------
158
159 XrdOucPinLoader(XrdVersionInfo *vInfo,
160 const char *drctv,
161 const char *plib);
162
163//------------------------------------------------------------------------------
167//------------------------------------------------------------------------------
168
170
171private:
172void Inform(const char *txt1, const char *txt2=0,
173 const char *txt3=0, const char *txt4=0,
174 const char *txt5=0);
175void Init(const char *drctv, const char *plib);
176bool LoadLib(int mcnt);
177
180XrdVersionInfo *viP;
181const char *dName;
182char *theLib;
183char *altLib;
184char *errBP;
189};
190#endif
Definition XrdOucPinLoader.hh:50
XrdVersionInfo * viP
Definition XrdOucPinLoader.hh:180
bool frBuff
Definition XrdOucPinLoader.hh:187
XrdOucPinLoader(char *eBuff, int eBlen, XrdVersionInfo *vInfo, const char *drctv, const char *plib)
XrdSysError * eDest
Definition XrdOucPinLoader.hh:178
char * theLib
Definition XrdOucPinLoader.hh:182
void Global(bool glbl)
Definition XrdOucPinLoader.hh:72
XrdOucPinLoader(XrdSysError *errP, XrdVersionInfo *vInfo, const char *drctv, const char *plib)
const char * LastMsg()
Definition XrdOucPinLoader.hh:81
void Inform(const char *txt1, const char *txt2=0, const char *txt3=0, const char *txt4=0, const char *txt5=0)
bool badLib
Definition XrdOucPinLoader.hh:188
XrdOucPinLoader(XrdVersionInfo *vInfo, const char *drctv, const char *plib)
bool global
Definition XrdOucPinLoader.hh:186
const char * dName
Definition XrdOucPinLoader.hh:181
bool LoadLib(int mcnt)
void * Resolve(const char *symbl, int mcnt=1)
XrdSysPlugin * piP
Definition XrdOucPinLoader.hh:179
int errBL
Definition XrdOucPinLoader.hh:185
void Unload(bool dodel=false)
const char * Path()
Definition XrdOucPinLoader.hh:91
char * altLib
Definition XrdOucPinLoader.hh:183
XrdSysPlugin * Export()
Definition XrdOucPinLoader.hh:62
char * errBP
Definition XrdOucPinLoader.hh:184
void Init(const char *drctv, const char *plib)
Definition XrdSysError.hh:90
Definition XrdSysPlugin.hh:53