LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
lsst::base::ModuleImporter Class Referenceabstract

Base class that defines an interface for importing Python modules. More...

#include <ModuleImporter.h>

Inheritance diagram for lsst::base::ModuleImporter:
lsst::base::PythonModuleImporter

Public Member Functions

 ModuleImporter (const ModuleImporter &)=delete
 
ModuleImporteroperator= (const ModuleImporter &)=delete
 
 ModuleImporter (ModuleImporter &&)=delete
 
ModuleImporteroperator= (ModuleImporter &&)=delete
 

Static Public Member Functions

static bool import (std::string const &name)
 Import the given Python module, and return true if successful. More...
 

Protected Member Functions

 ModuleImporter ()
 
virtual bool _import (std::string const &name) const =0
 
virtual ~ModuleImporter ()
 

Friends

void installPythonModuleImporter ()
 

Detailed Description

Base class that defines an interface for importing Python modules.

The default implementation (defined in the source file) simply returns false, indicating that it can't import the given module. The functional implementation is in the ioLib Swig module, which is installed when that module is imported. That machinery keeps us from calling Python C-API functions from standalone C++ binaries that aren't linked with Python.

Definition at line 46 of file ModuleImporter.h.

Constructor & Destructor Documentation

◆ ModuleImporter() [1/3]

lsst::base::ModuleImporter::ModuleImporter ( const ModuleImporter )
delete

◆ ModuleImporter() [2/3]

lsst::base::ModuleImporter::ModuleImporter ( ModuleImporter &&  )
delete

◆ ModuleImporter() [3/3]

lsst::base::ModuleImporter::ModuleImporter ( )
inlineprotected

Definition at line 62 of file ModuleImporter.h.

62 {}

◆ ~ModuleImporter()

virtual lsst::base::ModuleImporter::~ModuleImporter ( )
inlineprotectedvirtual

Definition at line 66 of file ModuleImporter.h.

66 {}

Member Function Documentation

◆ _import()

virtual bool lsst::base::ModuleImporter::_import ( std::string const &  name) const
protectedpure virtual

◆ import()

bool lsst::base::ModuleImporter::import ( std::string const &  name)
static

Import the given Python module, and return true if successful.

Definition at line 49 of file ModuleImporter.cc.

49  {
50  return getImporterSingleton()->_import(name);
51 }
table::Key< std::string > name
Definition: Amplifier.cc:116

◆ operator=() [1/2]

ModuleImporter& lsst::base::ModuleImporter::operator= ( const ModuleImporter )
delete

◆ operator=() [2/2]

ModuleImporter& lsst::base::ModuleImporter::operator= ( ModuleImporter &&  )
delete

Friends And Related Function Documentation

◆ installPythonModuleImporter

void installPythonModuleImporter ( )
friend

Definition at line 60 of file cppimport.cc.

60 { ModuleImporter::install(PythonModuleImporter::get()); }
static ModuleImporter const * get()
Definition: cppimport.cc:34

The documentation for this class was generated from the following files: