31#ifndef LUMIERA_INSTANCEHANDLE_H
32#define LUMIERA_INSTANCEHANDLE_H
53 template<
class I,
class FA>
75 if (!descriptor)
return NULL;
114 template<
class I,
class FA>
127 template<
class I,
class FA>
249 operator bool()
const
265 and verify_validity (&
instance_->interface_header_);
This framework allows to (re)configure the lib::Depend front-end for dependency-injection.
Handle tracking the registration of an interface, deregistering it on deletion.
I & get() const
directly access the instance via the CL interface
facade::Link< I, FA > facadeLink_
InstanceHandle(string const &iName, uint version, size_t minminor, string const &impName)
Set up an InstanceHandle representing a plugin.
FA * operator->() const
act as smart pointer to allow access through the facade.
InstanceHandle(LumieraInterface descriptor)
Set up an InstanceHandle managing the registration and deregistration of interface(s).
Any copy and copy construction prohibited.
Per type specific configuration of instances created as service dependencies.
lumiera_err lumiera_error_peek(void)
Check current error state without clearing it Please avoid this function and use lumiera_error() if p...
lumiera_err lumiera_error(void)
Get and clear current error state.
Lumiera error handling (C++ interface).
LumieraInterface lumiera_interface_open(const char *interface, unsigned version, size_t minminorversion, const char *name)
Open an interface by version and name.
void lumiera_interface_close(LumieraInterface self)
Close an interface after use.
Lumiera interface macros and structures.
lumiera_interface * LumieraInterface
void lumiera_interfaceregistry_register_interface(LumieraInterface self, LumieraPlugin plugin)
void lumiera_interfaceregistry_remove_interface(LumieraInterface self)
LumieraInterface lumiera_interfaceregistry_interface_find(const char *interface, unsigned version, const char *name)
Global registry for interfaces (extension points).
This header is for including and configuring NoBug.
bool verify_validity(LumieraInterface ifa)
do a lookup within the interfaceregistry using the name/version found within the interface handle,...
LumieraInterface register_and_open(LumieraInterface descriptor)
takes a (single) instance definitions, as typically created when defining interfaces for external use...
LumieraError< LERR_(CONFIG), Invalid > Config
lib::DependInject< FA >::template ServiceInstance< Proxy< InstanceHandle< I, FA > > > ServiceHandle
The ServiceHandle automatically creates and manages the Proxy instance.
to be specialised and implemented for each individual interface and facade interface.
Lumiera public interface.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
InstanceHandle< I, I > IH