1This backend integrates the R environment into Cantor. 2 3The design of the R backend is different from the other backends: 4As R offers a C API, there is no necesity for parsing output. 5As the R API is not thread-save and to not let the backend freeze 6Cantors ui, the backend is implemented as 2 parts: 7 8- The RServer: 9 This is a separate application, that uses the R-API to run commands, 10 and exposes it's functionality over DBUS 11 12- The R backend: 13 This implements the Cantor interfaces, and starts the RServer. It delivers 14 the commands to the server over DBUS, and connects to it's signals to get 15 the result. 16 17To embed plots, the RServer creates a png paint device, and checks if it gets 18changed while a computation is running. If so, the url of the png is delivered 19as result, and a new png-device is created, with a new temporary file. 20(NOTE: instead of png, eps should be used, but there were some problems when I first 21tried) 22 23The Code to access the R-API is heavily based on the RInside library 24by Dirk Eddelbuettel, see http://dirk.eddelbuettel.com/code/rinside.html 25