EDMA: Entorno de Desarrollo Modular y Abierto
Object Oriented and Componentware Framework

Copyright (C) 1998, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
           by David Martínez Oliveira

See file COPYING and COPYING.LESSER for copying conditions
==========================================================================

GNU/EDMA SIU Extensions Examples
-----------------------------------
These examples demonstrates the use of GNU/EDMA SIU extensions (SIU Proxies).

These examples uses the SUPER_CLASS class that is available in the GNU/EDMA examples repository and the ANNA_PYTHON_INTERP that is not installed by default.

To install the ANNA_PYTHON_INTERP follow the steps below:

- go to classes/system/anna in your GNU/EDMA source package
- compile the class with
make -f ANNA_PYTHON_INTERP.mk
- Install the class with
make -f ANNA_PYTHON_INTERP.mk install
ines_class_register ANNA_PYTHON_INTERP.ines

You need Python 2.5 to compile this class

To compile the examples use:

make -f runnable.mk
make -f anna_interp.mk


* Briefing
----------------
The GNU/EDMA SIU extension system allows to modify the main GNU/EDMA primitives to extend its functionalities in ways as new semantics (multi-threading classes) or interfacing to other run-time environments (implementing classes in interpreted languages). Two examples are provided and described bellow.

- runnable
This example uses the GNU/EDMA SIU Proxy named RUNNABLE. This SIU proxy extends the GNU/EDMA method invocation semantics allowing to run class methods in different threads. The example uses the example class SUPE_CLASS, overriding one of its virtual methods to run a loop. 

As the object is created with the RUNNABLE SIU proxy, that loop will be run in a different thread, in parallel with the main application thread.

- anna_interp
This example uses the GNU/EDMA Proxy named ANNA_PYTHON_INTERP (see above for installation). This SIU proxy extends the GNU/EDMA primitives to interface to a python interpreter, allowing the access to GNU/EDMA features from Python and also the execution of Python code from GNU/EDMA applications
