Hi Joseph,

Joseph Smith wrote:
The IEvent capabilities that have been introduced in v4.x.x work quite nicely.
Hope so, previous callback approach was indeed quite hard to work with, so we redesigned it.


I have a question about how much information is available when an event is triggered.
It's all depends on particular event, and how it's raised.

Does the IMachineDataChangedEvent (OnMachineDataChanged) provide a means of determining the specific data that has changed?

In current implementation - no. The only available information is machine ID. What kind of information would you like to
see in this event?

Other events (e.g: INATRedirectEvent) provide a means of determining that information without retrieving entire data-set.

Yes, because historically INATRedirectEvent was introduced recently, and IMachineDataChangedEvent is quite old (in form of onMachineDataChanged callback). Reason behind it, is that data may be changed in multiple places, so IMachineDataChangedEvent is fired from the saveSettings() method, and usually it's up to consumer to figure out exact details of the change.

Thus far, since I am unable to determine which specific machine data changed, it seems the only way to ensure I am in-sync is to retrieve all the machine data (attached storage controllers, audio settings, serial-port settings, VRDEServer settings, etc). If that is the case ... that's a lot of overhead if there are many machines that are frequently being modified.
What's your exact usecase? Maybe you can only keep in sync settings indeed relevant for you, and rely upon lazy update (that is, retrieve
data only when they are actually needed)?

  Nikolay

_______________________________________________
vbox-dev mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-dev

Reply via email to