JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
Steinberg::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 Steinberg::UpdateHandler:
Steinberg::FObject Steinberg::IUpdateHandler Steinberg::IUpdateManager Steinberg::IDependent Steinberg::FUnknown Steinberg::FUnknown Steinberg::FUnknown

Public Member Functions

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

Friends

class FObject
 

Additional Inherited Members

- Public Types inherited from Steinberg::IDependent
enum  ChangeMessage {
  kWillChange , kChanged , kDestroyed , kWillDestroy ,
  kStdChangeMessageLast
}
 
- Static Public Member Functions inherited from Steinberg::FObject
static FClassID getFClassID ()
 return Class ID as an ASCII string (statically)
 
static void setUpdateHandler (IUpdateHandler *handler)
 set method for the local attribute
 
static IUpdateHandlergetUpdateHandler ()
 get method for the local attribute
 
static bool classIDsEqual (FClassID ci1, FClassID ci2)
 compares (evaluates) 2 class IDs
 
static FObjectunknownToObject (FUnknown *unknown)
 pointer conversion from FUnknown to FObject
 
- Static Public Attributes inherited from Steinberg::FObject
static const FUID iid
 Special UID that is used to cast an FUnknown pointer to a FObject.
 
- Static Public Attributes inherited from Steinberg::IDependent
static const FUID iid
 
- Static Public Attributes inherited from Steinberg::FUnknown
static const FUID iid
 
- Static Public Attributes inherited from Steinberg::IUpdateHandler
static const FUID iid
 
- Static Public Attributes inherited from Steinberg::IUpdateManager
static const FUID iid
 
- Protected Attributes inherited from Steinberg::FObject
int32 refCount
 COM-model local reference count.
 
- Static Protected Attributes inherited from Steinberg::FObject
static IUpdateHandlergUpdateHandler
 

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.

Definition at line 76 of file updatehandler.h.

Constructor & Destructor Documentation

◆ UpdateHandler()

Steinberg::UpdateHandler::UpdateHandler ( )

Definition at line 192 of file updatehandler.cpp.

◆ ~UpdateHandler()

Steinberg::UpdateHandler::~UpdateHandler ( )

Definition at line 200 of file updatehandler.cpp.

Member Function Documentation

◆ addDependent() [1/2]

tresult PLUGIN_API Steinberg::UpdateHandler::addDependent ( FUnknown object,
IDependent dependent 
)
virtual

register

Parameters
dependentto get messages from
object

Implements Steinberg::IUpdateHandler.

Definition at line 209 of file updatehandler.cpp.

◆ addDependent() [2/2]

void Steinberg::FObject::addDependent ( IDependent dep)
virtual

adds dependency to the object

Reimplemented from Steinberg::FObject.

Definition at line 115 of file fobject.cpp.

◆ cancelUpdates()

tresult PLUGIN_API Steinberg::UpdateHandler::cancelUpdates ( FUnknown object)
virtual

cancel pending messages send by

Parameters
objector by any if object is 0

Implements Steinberg::IUpdateManager.

Definition at line 607 of file updatehandler.cpp.

◆ countDependencies()

size_t Steinberg::UpdateHandler::countDependencies ( FUnknown object = nullptr)

Definition at line 629 of file updatehandler.cpp.

◆ deferUpdate()

void Steinberg::FObject::deferUpdate ( int32  msg = kChanged)
virtual

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

Reimplemented from Steinberg::FObject.

Definition at line 118 of file fobject.cpp.

◆ deferUpdates()

tresult PLUGIN_API Steinberg::UpdateHandler::deferUpdates ( FUnknown object,
int32  message 
)
virtual

send

Parameters
messageto all dependents of
objectwhen idle

Implements Steinberg::IUpdateHandler.

Definition at line 463 of file updatehandler.cpp.

◆ removeDependent() [1/3]

tresult PLUGIN_API Steinberg::UpdateHandler::removeDependent ( FUnknown object,
IDependent dependent 
)
virtual

Remove a previously installed dependency.

Implements Steinberg::IUpdateHandler.

Definition at line 246 of file updatehandler.cpp.

◆ removeDependent() [2/3]

tresult PLUGIN_API Steinberg::UpdateHandler::removeDependent ( FUnknown object,
IDependent dependent,
size_t earseCount 
)

unregister

Parameters
dependentto get no messages from
object

Definition at line 253 of file updatehandler.cpp.

◆ removeDependent() [3/3]

void Steinberg::FObject::removeDependent ( IDependent dep)
virtual

removes dependency from the object

Reimplemented from Steinberg::FObject.

Definition at line 116 of file fobject.cpp.

◆ triggerDeferedUpdates()

tresult PLUGIN_API Steinberg::UpdateHandler::triggerDeferedUpdates ( FUnknown object = nullptr)
virtual

send pending messages send by

Parameters
objector by any if object is 0

Implements Steinberg::IUpdateManager.

Definition at line 503 of file updatehandler.cpp.

◆ triggerUpdates()

tresult PLUGIN_API Steinberg::UpdateHandler::triggerUpdates ( FUnknown object,
int32  message 
)
virtual

send

Parameters
messageto all dependents of
objectimmediately

Implements Steinberg::IUpdateHandler.

Definition at line 457 of file updatehandler.cpp.

Friends And Related Symbol Documentation

◆ FObject

friend class FObject
friend

Definition at line 89 of file updatehandler.h.


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