47namespace Update {
struct Table; }
61 static const FUID iid;
64DECLARE_CLASS_IID (
IUpdateManager, 0x030B780C, 0xD6E6418D, 0x8CE00BC2, 0x09C834D4)
91 tresult PLUGIN_API addDependent (
FUnknown*
object,
IDependent* dependent) SMTG_OVERRIDE;
93 tresult PLUGIN_API removeDependent (
FUnknown*
object,
IDependent* dependent,
size_t& earseCount);
94 tresult PLUGIN_API removeDependent (
FUnknown*
object,
98 tresult PLUGIN_API triggerUpdates (
FUnknown*
object, int32 message) SMTG_OVERRIDE;
100 tresult PLUGIN_API deferUpdates (
FUnknown*
object, int32 message) SMTG_OVERRIDE;
104 tresult PLUGIN_API cancelUpdates (
FUnknown*
object) SMTG_OVERRIDE;
106 tresult PLUGIN_API triggerDeferedUpdates (
FUnknown*
object =
nullptr) SMTG_OVERRIDE;
110 void checkUpdates (
FObject*
object =
nullptr)
112 triggerDeferedUpdates (
object ? object->unknownCast () :
nullptr);
114 void flushUpdates (
FObject*
object)
119 void deferUpdate (
FObject*
object, int32 message)
122 deferUpdates (object->unknownCast (), message);
124 void signalChange (
FObject*
object, int32 message,
bool suppressUpdateDone =
false)
127 doTriggerUpdates (object->unknownCast (), message, suppressUpdateDone);
130 bool checkDeferred (
FUnknown*
object);
131 bool hasDependencies (
FUnknown*
object);
132 void printForObject (
FObject*
object)
const;
135 size_t countDependencies (
FUnknown*
object =
nullptr);
142 tresult doTriggerUpdates (
FUnknown*
object, int32 message,
bool suppressUpdateDone);
Implements FUnknown and IDependent.
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).
FUnknown * unknownCast()
get FUnknown interface from object
Handling 16 Byte Globally Unique Identifiers.
The basic interface of all interfaces.
A dependent will get notified about changes of a model.
Host implements dependency handling for plugins.
Handle Send and Cancel pending message for a given object.
virtual tresult PLUGIN_API cancelUpdates(FUnknown *object)=0
cancel pending messages send by
virtual tresult PLUGIN_API triggerDeferedUpdates(FUnknown *object=nullptr)=0
send pending messages send by
UpdateHandler implements IUpdateManager and IUpdateHandler to handle dependencies between objects to ...
Basic Object implementing FUnknown.