DynExp
Highly flexible laboratory automation for dynamically changing experiments.
Libraries.h File Reference

Provides templates to bundle DynExp resources at compile time in libraries. More...

Go to the source code of this file.

Classes

class  DynExp::LibraryObjectFactoryParamList< ObjectTypeBasePtr,... >
 Type consisting of function pointer types instantiating DynExp objects. Refer to DynExp::LibraryObjectFactoryPtrType. More...
 
class  DynExp::LibraryConfigFactoryParamList<... >
 Type consisting of function pointer types returning configurators for DynExp objects. Refer to DynExp::ConfiguratorBasePtrType. More...
 
class  DynExp::LibraryStringParamList<... >
 Type consisting of function pointer types returning string literals. Refer to DynExp::LibraryStringParamPtrType. More...
 
struct  DynExp::LibraryEntry< ObjectTypeBasePtr >
 Represents an entry in the library. More...
 
class  DynExp::LibraryBase< ObjectTypeBasePtr, LibraryObjectFactoryParamList< ObjectTypeBasePtr, ObjFactories... >, LibraryConfigFactoryParamList< ConfFactories... >, LibraryStringParamList< NameFuncs... >, LibraryStringParamList< CategoryFuncs... > >
 Represents the specialized base class for a library containing library entries (DynExp::LibraryEntry). More...
 
class  DynExp::HardwareAdapterLibrary< HardwareAdapterTypes >
 Represents a hardware adapter library to generate instances of classes derived from DynExp::HardwareAdapterBase. More...
 
class  DynExp::InstrumentLibrary< InstrumentTypes >
 Represents an instrument library to generate instances of classes derived from DynExp::InstrumentBase. More...
 
class  DynExp::ModuleLibrary< ModuleTypes >
 Represents a module library to generate instances of classes derived from DynExp::ModuleBase. More...
 

Namespaces

 DynExp
 DynExp's main namespace contains the implementation of DynExp including classes to manage resources (DynExp objects like hardware adapters, instruments, and modules) as well as their dependencies and parameters.
 

Typedefs

template<typename ObjectTypeBasePtr >
using DynExp::LibraryObjectFactoryPtrType = ObjectTypeBasePtr(*)(const std::thread::id, ParamsBasePtrType &&)
 Alias for a factory function pointer type that instantiates library entries to create DynExp objects derived from DynExp::Object. As arguments, it expects the thread ID of the thread owning the resource and a reference to the resource's parameters to take ownership of. Compatible e.g. to DynExp::MakeModule(). More...
 
using DynExp::LibraryConfigFactoryPtrType = ConfiguratorBasePtrType(*)()
 Alias for a factory function pointer type that creates a configurator for a specific library entry. Compatible e.g. to DynExp::MakeModuleConfig(). More...
 
using DynExp::LibraryStringType = const char *
 String type used for library entry descriptors. More...
 
using DynExp::LibraryStringParamPtrType = LibraryStringType(*)()
 Pointer to a DynExp object's static constexpr function returning a string literal. Used for the Name() and Category() functions which are required for classes derived from DynExp::Object to become library entries. More...
 
using DynExp::HardwareAdapterLibraryVectorType = std::vector< LibraryEntry< HardwareAdapterPtrType > >
 Alias for the vector type containing entries of a hardware adapter library. More...
 
using DynExp::InstrumentLibraryVectorType = std::vector< LibraryEntry< InstrumentPtrType > >
 Alias for the vector type containing entries of a instrument library. More...
 
using DynExp::ModuleLibraryVectorType = std::vector< LibraryEntry< ModulePtrType > >
 Alias for the vector type containing entries of a module library. More...
 

Functions

template<typename LibraryVectorT >
const LibraryVectorT::value_type & DynExp::FindInLibraryVector (const LibraryVectorT &LibraryVector, const std::string &Category, const std::string &Name)
 Finds an entry in a library vector by category and name. More...
 

Detailed Description

Provides templates to bundle DynExp resources at compile time in libraries.

Definition in file Libraries.h.


Class Documentation

◆ DynExp::LibraryObjectFactoryParamList

class DynExp::LibraryObjectFactoryParamList

template<typename ObjectTypeBasePtr, LibraryObjectFactoryPtrType< ObjectTypeBasePtr > ...>
class DynExp::LibraryObjectFactoryParamList< ObjectTypeBasePtr,... >

Type consisting of function pointer types instantiating DynExp objects. Refer to DynExp::LibraryObjectFactoryPtrType.

Template Parameters
ObjectTypeBasePtrRefer to DynExp::LibraryObjectFactoryPtrType.
...Function pointer types

Definition at line 51 of file Libraries.h.

◆ DynExp::LibraryConfigFactoryParamList

class DynExp::LibraryConfigFactoryParamList

template<LibraryConfigFactoryPtrType...>
class DynExp::LibraryConfigFactoryParamList<... >

Type consisting of function pointer types returning configurators for DynExp objects. Refer to DynExp::ConfiguratorBasePtrType.

Template Parameters
...Function pointer types

Definition at line 59 of file Libraries.h.

◆ DynExp::LibraryStringParamList

class DynExp::LibraryStringParamList

template<LibraryStringParamPtrType...>
class DynExp::LibraryStringParamList<... >

Type consisting of function pointer types returning string literals. Refer to DynExp::LibraryStringParamPtrType.

Template Parameters
...Function pointer types

Definition at line 67 of file Libraries.h.