Base Module VST 3.7 SDK for developing VST plug-in

Public Member Functions | Public Attributes | List of all members
UpdateHandler Class Reference

UpdateHandler implements IUpdateManager and IUpdateHandler to handle dependencies between objects to store and forward messages to dependent objects. More...

`#include <updatehandler.h>`

Inheritance diagram for UpdateHandler:

## Public Member Functions
| UpdateHandler ()
| ~UpdateHandler () SMTG_OVERRIDE
tresult | addDependent (FUnknown *object, IDependent *dependent) SMTG_OVERRIDE
| register More...
tresult | removeDependent (FUnknown *object, IDependent *dependent, size_t &earseCount)
| unregister More...
tresult | removeDependent (FUnknown *object, IDependent *dependent) SMTG_OVERRIDE
tresult | triggerUpdates (FUnknown *object, int32 message) SMTG_OVERRIDE
| send More...
tresult | deferUpdates (FUnknown *object, int32 message) SMTG_OVERRIDE
| send More...
tresult | cancelUpdates (FUnknown *object) SMTG_OVERRIDE
| cancel pending messages send by More...
tresult | triggerDeferedUpdates (FUnknown *object=nullptr) SMTG_OVERRIDE
| send pending messages send by More...
size_t | countDependencies (FUnknown *object=nullptr)
| OBJ_METHODS (UpdateHandler, FObject) FUNKNOWN_METHODS2(IUpdateHandler
virtual void | addDependent (IDependent *dep)
| adds dependency to the object More...
virtual void | removeDependent (IDependent *dep)
| removes dependency from the object More...
virtual void | deferUpdate (int32 msg=kChanged)
| Similar to triggerUpdates, except only delivered in idle (usefull in collecting updates). More...
Public Member Functions inherited from FObject
| FObject ()=default
| default constructor... More...
| FObject (const FObject &)
FObject & | operator= (const FObject &)
| overloads operator "=" as the reference assignment More...
virtual | ~FObject ()
| destructor... More...
virtual FClassID | isA () const
| a local alternative to getFClassID () More...
virtual bool | isA (FClassID s) const
| evaluates if the passed ID is of the FObject type More...
virtual bool | isTypeOf (FClassID s, bool=true) const
| evaluates if the passed ID is of the FObject type More...
int32 | getRefCount ()
| returns the current interface reference count More...
FUnknown * | unknownCast ()
| get FUnknown interface from object More...
tresult | queryInterface (const TUID _iid, void **obj) SMTG_OVERRIDE
| please refer to FUnknown::queryInterface () More...
uint32 | addRef () SMTG_OVERRIDE
| please refer to FUnknown::addref () More...
uint32 | release () SMTG_OVERRIDE
| please refer to FUnknown::release () More...
void | update (FUnknown *, int32) SMTG_OVERRIDE
| empty virtual method that should be overridden by derived classes for data updates upon changes More...
virtual void | addDependent (IDependent *dep)
| adds dependency to the object More...
virtual void | removeDependent (IDependent *dep)
| removes dependency from the object More...
virtual void | changed (int32 msg=kChanged)
| Inform all dependents, that the object has changed. More...
virtual void | deferUpdate (int32 msg=kChanged)
| Similar to triggerUpdates, except only delivered in idle (usefull in collecting updates). More...
virtual void | updateDone (int32)
| empty virtual method that should be overridden by derived classes More...
virtual bool | isEqualInstance (FUnknown *d)
template<class C >
IPtr< C > | fromUnknown (FUnknown *unknown)
virtual tresult | cancelUpdates (FUnknown *object)=0
| cancel pending messages send by More...
virtual tresult | triggerDeferedUpdates (FUnknown *object=nullptr)=0
| send pending messages send by More...

## Public Attributes
| IUpdateManager
FObject SINGLETON(UpdateHandler) private Steinberg::Base::Thread::FLock | lock
Update::Table * | table = nullptr

## Additional Inherited Members
Static Public Member Functions inherited from FObject
static FClassID | getFClassID ()
| return Class ID as an ASCII string (statically) More...
static void | setUpdateHandler (IUpdateHandler *handler)
| set method for the local attribute More...
static IUpdateHandler * | getUpdateHandler ()
| get method for the local attribute More...
static bool | classIDsEqual (FClassID ci1, FClassID ci2)
| compares (evaluates) 2 class IDs More...
static FObject * | unknownToObject (FUnknown *unknown)
| pointer conversion from FUnknown to FObject More...
template<class Class >
static IPtr< Class > | fromUnknown (FUnknown *unknown)
| convert from FUnknown to FObject More...
Static Public Attributes inherited from FObject
static const FUID | iid
| Special UID that is used to cast an FUnknown pointer to a FObject. More...
Static Public Attributes inherited from IUpdateManager
static const FUID | iid
Protected Attributes inherited from FObject
int32 | refCount = 1
| COM-model local reference count. More...
Static Protected Attributes inherited from FObject
static IUpdateHandler * | gUpdateHandler = nullptr

## Detailed Description

UpdateHandler implements IUpdateManager and IUpdateHandler to handle dependencies between objects to store and forward messages to dependent objects.

This implementation is thread save, so objects can send message, add or remove dependents from different threads. Do do so it uses mutex, so be aware of locking.

## Constructor & Destructor Documentation

## ◆ UpdateHandler()

UpdateHandler | ( |  | ) |

## ◆ ~UpdateHandler()

~UpdateHandler | ( |  | ) |

## Member Function Documentation

## ◆ addDependent() [1/2]

tresult addDependent | ( | FUnknown * | object,
|  | IDependent * | dependent
| ) |  |

register

Parameters

  dependent | to get messages from
  object |

## ◆ removeDependent() [1/3]

tresult removeDependent | ( | FUnknown * | object,
|  | IDependent * | dependent,
|  | size_t & | earseCount
| ) |  |

unregister

Parameters

  dependent | to get no messages from
  object |

## ◆ removeDependent() [2/3]

tresult removeDependent | ( | FUnknown * | object,
|  | IDependent * | dependent
| ) |  |

## ◆ triggerUpdates()

tresult triggerUpdates | ( | FUnknown * | object,
|  | int32 | message
| ) |  |

send

Parameters

  message | to all dependents of
  object | immediately

## ◆ deferUpdates()

tresult deferUpdates | ( | FUnknown * | object,
|  | int32 | message
| ) |  |

send

Parameters

  message | to all dependents of
  object | when idle

## ◆ cancelUpdates()

tresult cancelUpdates | ( | FUnknown * | object | ) |
| virtual

cancel pending messages send by

Parameters

  object | or by any if object is 0

Implements IUpdateManager.

## ◆ triggerDeferedUpdates()

tresult triggerDeferedUpdates | ( | FUnknown * | object = `nullptr` | ) |
| virtual

send pending messages send by

Parameters

  object | or by any if object is 0

Implements IUpdateManager.

## ◆ countDependencies()

size_t countDependencies | ( | FUnknown * | object = `nullptr` | ) |

## ◆ OBJ_METHODS()

OBJ_METHODS | ( | UpdateHandler | ,
|  | FObject |
| ) |  |

## ◆ addDependent() [2/2]

void addDependent | ( | IDependent * | dep | ) |
| virtual

adds dependency to the object

Reimplemented from FObject.

## ◆ removeDependent() [3/3]

void removeDependent | ( | IDependent * | dep | ) |
| virtual

removes dependency from the object

Reimplemented from FObject.

## ◆ deferUpdate()

void deferUpdate | ( | int32 | msg = `kChanged` | ) |
| virtual

Similar to triggerUpdates, except only delivered in idle (usefull in collecting updates).

Reimplemented from FObject.

## Member Data Documentation

## ◆ IUpdateManager

IUpdateManager

## ◆ lock

FObject SINGLETON (UpdateHandler) private Steinberg::Base::Thread::FLock lock

## ◆ table

Update::Table* table = nullptr

Empty

Copyright © Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.