Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
apra::ModuleRegistry Class Reference

#include <ModuleRegistry.h>

Collaboration diagram for apra::ModuleRegistry:
Collaboration graph

Public Types

using RegistrationCallback = std::function<void()>
 

Public Member Functions

void registerModule (ModuleInfo info)
 
void addRegistrationCallback (RegistrationCallback callback)
 
void rerunRegistrations ()
 
bool hasModule (const std::string &name) const
 
const ModuleInfogetModule (const std::string &name) const
 
std::vector< std::string > getAllModules () const
 
std::vector< std::string > getModulesByCategory (ModuleCategory cat) const
 
std::vector< std::string > getModulesByTag (const std::string &tag) const
 
std::vector< std::string > getModulesWithAllTags (const std::vector< std::string > &tags) const
 
std::unique_ptr< ModulecreateModule (const std::string &name, const std::map< std::string, ScalarPropertyValue > &props) const
 
std::unique_ptr< ModulecreateCudaModule (const std::string &name, const std::map< std::string, ScalarPropertyValue > &props, void *cudaStreamPtr) const
 
bool setCudaFactory (const std::string &name, ModuleInfo::CudaFactoryFn factory)
 
bool moduleRequiresCudaStream (const std::string &name) const
 
std::unique_ptr< ModulecreateCuContextModule (const std::string &name, const std::map< std::string, ScalarPropertyValue > &props, void *cuContextPtr) const
 
bool setCuContextFactory (const std::string &name, ModuleInfo::CuContextFactoryFn factory)
 
bool moduleRequiresCuContext (const std::string &name) const
 
std::string toJson () const
 
std::string toToml () const
 
void clear ()
 
size_t size () const
 

Static Public Member Functions

static ModuleRegistryinstance ()
 

Private Member Functions

 ModuleRegistry ()=default
 
 ~ModuleRegistry ()=default
 
 ModuleRegistry (const ModuleRegistry &)=delete
 
ModuleRegistryoperator= (const ModuleRegistry &)=delete
 

Private Attributes

std::map< std::string, ModuleInfomodules_
 
std::vector< RegistrationCallbackregistrationCallbacks_
 
std::mutex mutex_
 

Member Typedef Documentation

◆ RegistrationCallback

using apra::ModuleRegistry::RegistrationCallback = std::function<void()>

Constructor & Destructor Documentation

◆ ModuleRegistry() [1/2]

apra::ModuleRegistry::ModuleRegistry ( )
privatedefault

◆ ~ModuleRegistry()

apra::ModuleRegistry::~ModuleRegistry ( )
privatedefault

◆ ModuleRegistry() [2/2]

apra::ModuleRegistry::ModuleRegistry ( const ModuleRegistry & )
privatedelete

Member Function Documentation

◆ addRegistrationCallback()

void apra::ModuleRegistry::addRegistrationCallback ( RegistrationCallback callback)

◆ clear()

void apra::ModuleRegistry::clear ( )

◆ createCuContextModule()

std::unique_ptr< Module > apra::ModuleRegistry::createCuContextModule ( const std::string & name,
const std::map< std::string, ScalarPropertyValue > & props,
void * cuContextPtr ) const

◆ createCudaModule()

std::unique_ptr< Module > apra::ModuleRegistry::createCudaModule ( const std::string & name,
const std::map< std::string, ScalarPropertyValue > & props,
void * cudaStreamPtr ) const

◆ createModule()

std::unique_ptr< Module > apra::ModuleRegistry::createModule ( const std::string & name,
const std::map< std::string, ScalarPropertyValue > & props ) const

◆ getAllModules()

std::vector< std::string > apra::ModuleRegistry::getAllModules ( ) const

◆ getModule()

const ModuleInfo * apra::ModuleRegistry::getModule ( const std::string & name) const
Here is the caller graph for this function:

◆ getModulesByCategory()

std::vector< std::string > apra::ModuleRegistry::getModulesByCategory ( ModuleCategory cat) const

◆ getModulesByTag()

std::vector< std::string > apra::ModuleRegistry::getModulesByTag ( const std::string & tag) const

◆ getModulesWithAllTags()

std::vector< std::string > apra::ModuleRegistry::getModulesWithAllTags ( const std::vector< std::string > & tags) const
Here is the caller graph for this function:

◆ hasModule()

bool apra::ModuleRegistry::hasModule ( const std::string & name) const

◆ instance()

ModuleRegistry & apra::ModuleRegistry::instance ( )
static
Here is the caller graph for this function:

◆ moduleRequiresCuContext()

bool apra::ModuleRegistry::moduleRequiresCuContext ( const std::string & name) const

◆ moduleRequiresCudaStream()

bool apra::ModuleRegistry::moduleRequiresCudaStream ( const std::string & name) const

◆ operator=()

ModuleRegistry & apra::ModuleRegistry::operator= ( const ModuleRegistry & )
privatedelete

◆ registerModule()

void apra::ModuleRegistry::registerModule ( ModuleInfo info)
Here is the caller graph for this function:

◆ rerunRegistrations()

void apra::ModuleRegistry::rerunRegistrations ( )

◆ setCuContextFactory()

bool apra::ModuleRegistry::setCuContextFactory ( const std::string & name,
ModuleInfo::CuContextFactoryFn factory )

◆ setCudaFactory()

bool apra::ModuleRegistry::setCudaFactory ( const std::string & name,
ModuleInfo::CudaFactoryFn factory )

◆ size()

size_t apra::ModuleRegistry::size ( ) const

◆ toJson()

std::string apra::ModuleRegistry::toJson ( ) const
Here is the call graph for this function:

◆ toToml()

std::string apra::ModuleRegistry::toToml ( ) const
Here is the call graph for this function:

Member Data Documentation

◆ modules_

std::map<std::string, ModuleInfo> apra::ModuleRegistry::modules_
private

◆ mutex_

std::mutex apra::ModuleRegistry::mutex_
mutableprivate

◆ registrationCallbacks_

std::vector<RegistrationCallback> apra::ModuleRegistry::registrationCallbacks_
private

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