On 09/01/2011 10:37 PM, Harry van Haaren wrote:

Functors & closures, yeah I suppose... for now this system is working,
and quite easy to add new types to (does need a big recompile after a
change though.. as heaps of headers include the "Event" type, as its
pretty much to core of the Engine.. :)



Hmm, i used Functors and Closures in jass for passing commands to the realtime thread and wrote a small article about it.

http://178.63.2.231/~tapas/wordpress/?page_id=45

Coupled with a poor man's garbage collection scheme using boost::shared_ptr's this was a quite quick way to hack up jass. There's no need to introduce new types if you want to do something new. Actually there's only exactly one type that gets passed through the command ringbuffer and that is boost::function<void(void)>. See e.g.

https://github.com/fps/jass/blob/master/engine.h

and

https://github.com/fps/jass/blob/master/main_window.h

I agree that this method doesn't necessarily scale to other kind of applications and it also might be a bit more error prone than a well thought out event system using types that cover all bases, it does make for a quite good solution for an app of the scope of jass..

Have fun,
Flo



-Harry

PS: Nice article on "Duct tape programming":
http://www.joelonsoftware.com/items/2009/09/23.html Especially read
the paragraph beside the photo of the guy jumping


Taking a look..


_______________________________________________
Linux-audio-dev mailing list
[email protected]
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to