Albert
Loading...
Searching...
No Matches
albert::WeakDependency< T > Class Template Referencefinal

#include <albert/plugindependency.h>

Inheritance diagram for albert::WeakDependency< T >:
[legend]

Detailed Description

template<class T>
class albert::WeakDependency< T >

Convenience holder class for plugin soft dependencies.

Watches for (de)registration of an extension id of type T. On (de)registration of the dependency the pointer is updated and the callback called.

If you use this class you may want to lock a mutex against a query handler or an action. This should not be necessary since the plugin loader and the extension registry must not be accessed while a session query is running. Take care though if you defer the execution of the action using a timer or similar.

Public Member Functions

 WeakDependency (const QString &id, std::function< void(bool)> on_registered={})
 Constructs a WeakDependency with id and callback on_registered.
 
 ~WeakDependency ()
 
- Public Member Functions inherited from albert::Dependency< T >
 operator T () const
 
 operator bool () const
 
const T * operator-> () const
 
T * operator-> ()
 
const T * get () const
 
T * get ()
 

Public Attributes

std::function< void(bool)> callback
 

Additional Inherited Members

- Protected Attributes inherited from albert::Dependency< T >
T * dependency_ = nullptr
 

Constructor & Destructor Documentation

◆ WeakDependency()

template<class T >
albert::WeakDependency< T >::WeakDependency ( const QString &  id,
std::function< void(bool)>  on_registered = {} 
)
inlineexplicit

Constructs a WeakDependency with id and callback on_registered.

◆ ~WeakDependency()

template<class T >
albert::WeakDependency< T >::~WeakDependency ( )
inline

Member Data Documentation

◆ callback

template<class T >
std::function<void(bool)> albert::WeakDependency< T >::callback

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