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

#include <albert/plugindependency.h>

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

Detailed Description

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

Convenience holder class for plugin soft dependencies.

Fetches and holds the weak pointer to the dependecy. 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 (ExtensionRegistry &registry, const QString &id, std::function< void(bool)> registeredCallback={})
 WeakDependency constructor.
 
 ~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
 (De)Registration callback
 

Additional Inherited Members

- Protected Member Functions inherited from albert::Dependency< T >
 Dependency (ExtensionRegistry &registry, const QString &id)
 
- Protected Attributes inherited from albert::Dependency< T >
T * dependency = nullptr
 

Constructor & Destructor Documentation

◆ WeakDependency()

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

WeakDependency constructor.

Parameters
registryThe extension registry
idThe id of the dependency
registeredCallbackA callback that is called when the dependency is (un)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

(De)Registration callback

Parameters
booltrue if the dependency was added, false if it was removed

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