help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[announce] Concurrent Modules for GNU Octave


From: Driss Ghaddab
Subject: [announce] Concurrent Modules for GNU Octave
Date: Sun, 27 Feb 2005 09:03:00 +0100
User-agent: Mozilla Thunderbird 0.6+ (X11/20050128)

Hi,

I'm pleased to announce the first release of Concurrent Modules for GNU
Octave, or CMO for short.

CMO is a framework to help the development of modular extensions that
run in a parallel thread. A medium term objective of this framework is
the developement of GUI building capabilities for Octave.

An abstract class for CMO modules is provided.  A module communicates
with Octave's thread using a pipe.  Octave sends commands to it and
waits for answers.  The module can also emit events.  Octave checks for
the event queue and processes it and launches an associated callback.

A module can create objects.

An abstract class for CMO objects is provided.  Each object has
properties and methods.  The abstract class manages these properties.
The objects are exported to Octave as a new octave_value type that looks
like a structure.  The end-user accesses properties and methods using a
syntax similar to the one used for octave structures, e.g.:
"y=object.property; object.property=x; z=object.method(args)".  Setting
or reading a property can trigger a communication with the module which
can handle the request. The same goes for the methods. To provide
flexibility, CMO allows to add hooks for the following operations:
read/write property value and pre/post callback hooks.

As a module example, a timer module is provided with the library.  It
mimics the timer object as found on matlab 6.5 and newer.  It can
trigger user defined callbacks at specified intervals.  This module is
used to test the framework.

Caveats:
It currently requires pthreads.
It currently requires octave to be built with readline.
Code portability can be improved.

Home page (with download link and doxygen documentation) is at:
http://driss.ghaddab.free.fr/cmo/

GNU Arch mirror (may not be up-to-date) is at:
address@hidden
http://driss.ghaddab.free.fr/cmo/archives/

I may host the project on a CVS repository, if the needed.

Subsequent development of CMO will aim to provide a GUI abstraction
layer over which toolkit-dependent layers will be developed.

CMO aims to be generic enough and I'm looking forward to every comment
and feedback to improve it and make it more useful.

Cheers,

Driss Ghaddab








-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]