Hi Ian,
Think your question is mostly about locking, and my understanding is
that there's no need
to lock the VM. Genereally, as Klaus pointed out, event source holds
reference to object which
produces events for it, shall it be Console, Machine or VirtualBox instance.
So your code could be significantly simplified.
vboxshell.py contains reasonable (for the moment I wrote it) usecase of
event sources, including
filtering and aggregation.
Thanks,
Nikolay
On 10/01/2012 04:58 PM, Ian Moore wrote:
Hello,
I'm having some trouble following the passive event mechanism logic.
I'm working on a web application and it will periodically poll
vboxwebsrv for events. While this works well with the vbox event
source, I'm not quite sure how to implement this for individual
machine console events. Should it go like this:
1. Create an event listener when a running machine is selected
--- machine = vbox->findMachine(...)
--- session = websessionManager->getSessionObject()
--- listener = session->console->eventSource->createListener()
--- session->console->eventSource->registerListener(listener,...,false)
--- session->unlock(machine)
2. Then periodically poll for events. Each poll cycle would
--- machine = vbox->findMachine(...)
--- session = websessionManager->getSessionObject()
--- while(event = session->console->eventSource->getEvent(listener
created in step #1)) { ... }
--- session->unlock(machine)
Should I leave the shared lock in place (leaving session->console
available) until the machine is deselected or stopped? I tried looking
through the VirtualBox source, but was unable to determine how it
should work.
Thank you for any help!
_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev
_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev