diff options
author | Richard Jones <rjones@trick.home.annexia.org> | 2009-10-06 16:38:11 +0100 |
---|---|---|
committer | Richard Jones <rjones@trick.home.annexia.org> | 2009-10-06 16:38:11 +0100 |
commit | 2a8acd07005f2e8cdc43a6cc2a4e6f3d66f9fc4d (patch) | |
tree | 624db0958d105a340d22c9c59c3f39b8d6d8073f /HACKING | |
parent | ec78262c21c9bb6ccfe52925471a58a2e360043c (diff) | |
download | virt-top-2a8acd07005f2e8cdc43a6cc2a4e6f3d66f9fc4d.tar.gz virt-top-2a8acd07005f2e8cdc43a6cc2a4e6f3d66f9fc4d.tar.xz virt-top-2a8acd07005f2e8cdc43a6cc2a4e6f3d66f9fc4d.zip |
HACKING file, update (C) messages.
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 81 |
1 files changed, 81 insertions, 0 deletions
@@ -0,0 +1,81 @@ +This file contains some tips for hacking on this code. + +General OCaml advice: + +(1) The *.mli file describes the interface of the module. It's a good + idea to look at this file first, then at *.ml (the implementation). + +(2) Emacs users: use tuareg-mode for editing OCaml. + +(3) http://www.ocaml-tutorial.org/ + +(4) http://camltastic.blogspot.com/2008/08/3-things-that-will-confuse-you-when.html + +The code is structured into these files: + + virt_top_utils.mli / virt_top_utils.ml + + String functions and other small utility functions. This is + included directly into virt_top.ml. + + virt_top_version.ml + + The version number (automatically generated by configure). + + virt_top.mli / virt_top.ml + + This is the virt-top program. + + The two interesting functions are called 'collect' and 'redraw'. + + 'collect' collects all the information about domains, etc. + + 'redraw' updates the display on each frame. + + Another interesting function is 'start_up' which handles all + start-up stuff, eg. command line arguments, connecting to the + hypervisor, enabling curses. + + The function 'main_loop' runs the main loop and has sub-functions + to deal with keypresses, help screens and so on. + + virt_top_xml.ml + + Any code which needs the optional xml-light library goes + in here. Mainly for parsing domain XML descriptions to get + the list of block devices and network interfaces. + + The reason for having it in a separate file is so that we + don't depend on xml-light. + + virt_top_csv.ml + + Any code which needs the optional ocaml-csv library goes + in here. This implements the --csv command line option. + + virt_top_calendar1.ml + virt_top_calendar2.ml + + Any code which needs the optional ocaml-calendar library + goes in here. This implements the --end-time command line + option. Note there are two incompatible versions of the + ocaml-calendar library, which is why we have two + implementations. The Makefile works out which one to use. + + virt_top_gettext.ml + + Gettext interaction (this is generated by ./configure). + + virt_top_main.ml + + This is just a small bit of code to glue the modules above + together. + +The man-page is generated from the single file: + + virt-top.pod + +which generates (using perldoc) the following: + + virt-top.1 + virt-top.txt |