Most of DEMETER makes no particular assumptions about how you will be interacting with it. There is no special exception handling beyond what comes normally with perl. In the case of, for instance, failed sanity checks on a fitting model, error messages are sent to perl's normal warn and die channels on STDERR. The only sense in which there is an “application interface” is due to the fact that DEMETER uses Moose, so one interacts with DEMETER in essentially the way one would interact with a class system written in Moose. Any special functionality for a particular style of user interface is something that needs to be explicitly enabled in your DEMETER-using program.
DEMETER has a lot of neat features that get enabled when you explicitly set the ui attibute of the Mode object to be screen. The best way to do this is at the very beginning of your program, when you import DEMETER.
- #!/usr/bin/perl use Demeter qw(:ui=screen);
Setting the ui “pragma” in this way makes DEMETER assume at compile time that you program will be using a command line UI. Doing so at this stage will enable the full compliment of rich CLI features.
You can also switch to screen mode during the course of your program, like so.
However, setting screen mode this way cannot enable all the features.
The features that get turned on by screen mode include:
Describing GUIs is well beyond the scope of this document. DEMETER can be used with just about any interface toolkit. GUIs for ARTEMIS, ATOMS, and HEPHAESTUS using wxWindows come with the DEMETER package and there is substantial functionality for Wx that has been baked into those parts of DEMETER. But there is nothing that explicitly ties anything described in this document to Wx.
Expose some fraction (possibly all...) of DEMETER via XML-RPC.
pgplot
gnuplot
singlefile, not really a display backend, more of an export tool for using some other program to make beautiful, publication-quality plots