XrdOucPinLoader Class Reference

#include <XrdOucPinLoader.hh>

Collaboration diagram for XrdOucPinLoader:
Collaboration graph
[legend]

List of all members.

Public Member Functions

XrdSysPluginExport ()
void Global (bool glbl)
const char * LastMsg ()
const char * Path ()
void * Resolve (const char *symbl, int mcnt=1)
void Unload (bool dodel=false)
 XrdOucPinLoader (XrdSysError *errP, XrdVersionInfo *vInfo, const char *drctv, const char *plib)
 XrdOucPinLoader (char *eBuff, int eBlen, XrdVersionInfo *vInfo, const char *drctv, const char *plib)
 XrdOucPinLoader (XrdVersionInfo *vInfo, const char *drctv, const char *plib)
 ~XrdOucPinLoader ()

Private Member Functions

void Inform (const char *txt1, const char *txt2=0, const char *txt3=0, const char *txt4=0, const char *txt5=0)
void Init (const char *drctv, const char *plib)

Private Attributes

XrdSysErroreDest
XrdSysPluginpiP
XrdVersionInfo * viP
const char * dName
const char * tryLib
char * theLib
char * altLib
char * errBP
int errBL
bool global
bool frBuff

Constructor & Destructor Documentation

XrdOucPinLoader::XrdOucPinLoader ( XrdSysError errP,
XrdVersionInfo *  vInfo,
const char *  drctv,
const char *  plib 
)

Constructor #1

Parameters:
errP Pointer to the message routing object.
vInfo Pointer to the version information of the caller. If the pointer is nil, no version checking occurs.
drctv Pointer to the directive that initiated the load. The text is used in error messages to relate the directive to the error. E.g. "oofs.osslib" -> "Unable to load ofs.osslib plugin...."
plib Pointer to the shared library path that contains the plugin.
XrdOucPinLoader::XrdOucPinLoader ( char *  eBuff,
int  eBlen,
XrdVersionInfo *  vInfo,
const char *  drctv,
const char *  plib 
)

Constructor #2

Parameters:
eBuff Pointer to a buffer to receive messages.
eBlen Length of the buffer.
vInfo Pointer to the version information of the caller. If the pointer is nil, no version checking occurs.
drctv Pointer to the directive that initiated the load (see above).
plib Pointer to the shared library path that contains the plugin.
XrdOucPinLoader::XrdOucPinLoader ( XrdVersionInfo *  vInfo,
const char *  drctv,
const char *  plib 
)

Constructor #3 (An internal message buffer is allocated. You can get the message, if any, using LastMsg())

Parameters:
vInfo Pointer to the version information of the caller. If the pointer is nil, no version checking occurs.
drctv Pointer to the directive that initiated the load (see above).
plib Pointer to the shared library path that contains the plugin.
XrdOucPinLoader::~XrdOucPinLoader (  ) 

Destructor

Upon deletion, if the plugin was successfully loaded, it is persisted.


Member Function Documentation

XrdSysPlugin* XrdOucPinLoader::Export (  )  [inline]

Export the plugin object for manual management.

Returns:
!0 Pointer to the plugin object. It is disassociated from this object and must be manually managed.
=0 Either no plugin object has been created or it has been exported.

References piP.

void XrdOucPinLoader::Global ( bool  glbl  )  [inline]

Set export range of symbols in the plugin.

Parameters:
glbl when true then the symbols defined in the plug-in shared library are made available for symbol resolution of subsequently loaded libraries.

References global.

void XrdOucPinLoader::Inform ( const char *  txt1,
const char *  txt2 = 0,
const char *  txt3 = 0,
const char *  txt4 = 0,
const char *  txt5 = 0 
) [private]
void XrdOucPinLoader::Init ( const char *  drctv,
const char *  plib 
) [private]
const char* XrdOucPinLoader::LastMsg (  )  [inline]

Get the last message placed in the buffer.

Returns:
Pointer to the last message. If there is no buffer or no message exists, a null string is returned.

References errBP.

const char* XrdOucPinLoader::Path (  )  [inline]

Get the actual path that was or will tried for loading.

Returns:
Pointer to the path that was loaded if called after Resolve() or the path that will be attempted to be loaded. If the path is invalid, a single question mark is returned.

References tryLib.

void* XrdOucPinLoader::Resolve ( const char *  symbl,
int  mcnt = 1 
)

Resolve a desired symbol from the plugin image.

Parameters:
symbl Pointer to the name of the symbol to resolve.
mcnt Maximum number of version messages to be displayed.
Returns:
!0 The address of the symbol.
=0 The symbol could not be resolved.
void XrdOucPinLoader::Unload ( bool  dodel = false  ) 

Unload any plugin that may be associated with this object. The plugin image will not be persisted when this object is deleted.

Parameters:
dodel When true, the object is deleted (this only works if it is created via new). Otherwise, plugin is only unloaded.

Referenced by XrdCl::PlugInManager::FactoryHelper::~FactoryHelper().


Member Data Documentation

char* XrdOucPinLoader::altLib [private]
const char* XrdOucPinLoader::dName [private]
int XrdOucPinLoader::errBL [private]
char* XrdOucPinLoader::errBP [private]

Referenced by LastMsg().

bool XrdOucPinLoader::frBuff [private]
bool XrdOucPinLoader::global [private]

Referenced by Global().

Referenced by Export().

char* XrdOucPinLoader::theLib [private]
const char* XrdOucPinLoader::tryLib [private]

Referenced by Path().

XrdVersionInfo* XrdOucPinLoader::viP [private]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 17 Dec 2019 for xrootd by  doxygen 1.6.1