VSTGUI 4.10
Graphical User Interface Framework not only for VST plugins
|
simple dependency between objects. More...
#include <idependency.h>
Classes | |
class | DeferChanges |
helper class to defer changes until instance is destroyed. More... | |
Public Member Functions | |
virtual void | addDependency (CBaseObject *obj) |
add a dependent object More... | |
virtual void | removeDependency (CBaseObject *obj) |
remove a dependent object. More... | |
virtual void | changed (IdStringPtr message) |
notify dependent objects of change with message. More... | |
virtual void | deferChanges (bool state) |
defer changes until later. More... | |
Protected Types | |
using | DeferedChangesSet = std::set< IdStringPtr > |
using | DependentList = std::list< CBaseObject * > |
Protected Member Functions | |
IDependency ()=default | |
virtual | ~IDependency () noexcept |
Static Protected Member Functions | |
static void | rememberObject (CBaseObject *obj) |
static void | forgetObject (CBaseObject *obj) |
Protected Attributes | |
int32_t | deferChangeCount {0} |
DeferedChangesSet | deferedChanges |
DependentList | dependents |
simple dependency between objects.
You can inject this implementation into CBaseObjects whenever you need other CBaseObjects to be informed about changes to that class instance. Note that you need to handle recursions yourself and that no reference counting is done and that you must make sure that the dependent objects are alife while added as dependent.
|
protected |
|
protected |
|
protecteddefault |
|
inlineprotectedvirtualnoexcept |
|
inlinevirtual |
add a dependent object
|
inlinevirtual |
notify dependent objects of change with message.
|
inlinevirtual |
defer changes until later.
can be nested. If you use this, you must make sure that all message pointers are valid the whole time.
|
inlinestaticprotected |
|
inlinestaticprotected |
|
inlinevirtual |
remove a dependent object.
|
protected |
|
protected |
|
protected |