psana::DynLoader Class Reference
[psana package]

Class which can load modules from dynamic libraries. More...

#include <DynLoader.h>

List of all members.

Public Member Functions

boost::shared_ptr< ModuleloadModule (const std::string &name) const
 Load one user module.
boost::shared_ptr< InputModuleloadInputModule (const std::string &name) const
 Load one input module.

Protected Member Functions

void * loadPackageLib (const std::string &packageName) const
 Load the library for a package.
void * loadFactoryFunction (const std::string &className, const std::string &factory) const
 Load the library and find factory symbol.


Detailed Description

Class which can load modules from dynamic libraries.

This software was developed for the LCLS project. If you use all or part of it, please give an appropriate acknowledgment.

Version:
$Id: DynLoader.h 4451 2012-09-12 00:18:42Z salnikov@SLAC.STANFORD.EDU $
Author:
Andrei Salnikov

Definition at line 52 of file DynLoader.h.


Member Function Documentation

void * psana::DynLoader::loadFactoryFunction ( const std::string &  className,
const std::string &  factory 
) const [protected]

Load the library and find factory symbol.

Parameters:
[in] className String in the format Package.Class
[in] factory Prefix for factory function name, like "_psana_module_"
Returns:
pointer to factory function.
Exceptions:
ExceptionModuleName 
ExceptionDlerror 

Definition at line 163 of file DynLoader.cpp.

References loadPackageLib().

Referenced by loadInputModule().

boost::shared_ptr< InputModule > psana::DynLoader::loadInputModule ( const std::string &  name  )  const

Load one input module.

The name of the module has a format [Package.]Class[:name]

Definition at line 140 of file DynLoader.cpp.

References loadFactoryFunction().

Referenced by psana::PSAna::dataSource().

boost::shared_ptr< Module > psana::DynLoader::loadModule ( const std::string &  name  )  const

Load one user module.

The name of the module has a format [Language:][Package.]Class[:name]. Accepted languages are "c++", "python", "py" (same as "python).

Definition at line 92 of file DynLoader.cpp.

Referenced by psana::PSAna::dataSource().

void * psana::DynLoader::loadPackageLib ( const std::string &  packageName  )  const [protected]

Load the library for a package.

Parameters:
[in] packageName Package name.
Returns:
Library handle.
Exceptions:
ExceptionDlerror 

Definition at line 188 of file DynLoader.cpp.

References logger, and MsgLog.

Referenced by loadFactoryFunction().


The documentation for this class was generated from the following files:
Generated on 19 Dec 2016 for PSANAclasses by  doxygen 1.4.7