Here is the list of RD11 API's. I've included locations of source
code and documentation, dependencies and other comments.
RD11:
CVS: CVSROOT: /local/mrl/.CVS Module: MMRA
WebCVS: http://www.cim.mcgill.ca/~mrl/cvsweb/cvsweb.cgi/MMRA
Web Page: The main (but outdated) web page is at http://www.cim.mcgill.ca/~simra/software/daemon.html
Docs: MMRA/doc, /local/mrl/doc/RD11, /local/mrl/man/
Comments:
- Docs include Richie's html, modules.txt, plugins.txt and a man page
RD11.1
- The man page is probably out of date.
- The html docs are installed with each build in /local/mrl/doc/RD11
- The text docs aren't installed.
- There are also docs online.
- Ideally, there would be a help file like those in /local/mrl/help
Core API's
libRD11:
The C language API.
CVS: Module: MMRA/libRD11
WebCVS: http://www.cim.mcgill.ca/~mrl/cvsweb/cvsweb.cgi/MMRA/libRD11
Header: /local/mrl/include/RD11.h
Linkable: /local/mrl/lib/Robodaemon/libRD11.[a,so]
Man Page: /local/mrl/man/man3/libRD11.3 online
Test source:
Dependencies: libSocketUtilities (see below)
Comments:
- Probably the most widely used interface.
- libRD11 doesn't compile straight out of CVS without
checking out the top-level tree (MMRA) first.
- The man page is out of date: it indicates RD10 everywhere. There
may be other parts that are incorrect.
libRD11++:
The C++ language API.
CVS: Module: MMRA/libRD11++
Header: /local/mrl/include/RD11++.h
Linkable: /local/mrl/lib/Robodaemon/libRD11++.[a,so]
WebCVS: http://www.cim.mcgill.ca/~mrl/cvsweb/cvsweb.cgi/MMRA/libRD11++
(files are in Attic until the Stable branch is merged)
Man Page: None
Test source: In the libRD11++ CVS module (testrd11++).
Dependencies: libsocket++ (see below), STL
Comments:
- A nice c++ interface. Yiannis and I make heavy use of this library
without any major problems.
- Like libRD11, it doesn't compile independently of the top-level module.
- There is a README file in CVS with some cursory outdated documentation.
JRD10:
Java-based classes for RD10. In theory, they should be fully
compatible with RD11.
CVS: Module: JRD10
WebCVS: http://www.cim.mcgill.ca/~mrl/cvsweb/cvsweb.cgi/JRD10
Web Docs: There are docs in CVS.
Test source: There is possibly some in the CVS module.
Dependencies: None
Comments:
RD11.pm
A perl module for RD11.
CVS: MMRA/etc/RD11.pm
Docs: The perl module contains perldoc tags. In theory, Eric
once installed the documentation somewhere, but I don't know where.
Dependencies: None.
Comments:
I have eviscerated this module many times over and customize it to my
own needs:
simra@Wind:[etc] 59>find ~ -name RD11.pm
/home/discovery/simra/MMRA/etc/RD11.pm
/home/discovery/simra/mrl/RD11.pm
/home/discovery/simra/Localize/data/mrl-windows/RD11.pm
/home/discovery/simra/Localize/data/simul-explore/RD11.pm
It would be worth finding the one with the latest revision
date, cleaning it up
(it emits all kinds of rude debugging messages) and putting it
somewhere central (like CVS).
Other Libraries:
libSocketUtilities
A large beast for handling sockets.
CVS: Module: MMRA/libSocketUtilities
Header: /local/mrl/include/SocketUtilities.h
Linkable: /local/mrl/lib/Robodaemon/libSocketUtilities.[a,so]
WebCVS: http://www.cim.mcgill.ca/~mrl/cvsweb/cvsweb.cgi/MMRA/libSocketUtilities
Man Page: Several in /local/mrl/man/man3
Test source: None that I'm aware of, although there are many
sample programs like testRD11 that are dependent on it indirectly
Dependencies: None
Comments:
I have never learned to completely trust it, although
I depend on it heavily, both inside daemon and in many other programs.
libsocket++
A third-party c++ socket stream class. There are multiple versions
online, but this one is the most linux-friendly I could find. I have dogged the
authors to create a SourceForge site for it, but have yet to see any
action.
CVS: Module: socket++
Header: /local/mrl/include/sockinet.h
Linkable: /local/mrl/lib/libsocket++.a
WebCVS: http://www.cim.mcgill.ca/~mrl/cvsweb/cvsweb.cgi/socket++
Docs: Try /local/mrl/info
Test source: In the CVS source.
Dependencies: None
Comments:
Reliable for simple apps. It has not been put through any serious
testing otherwise.
libmrl++
An assortment of useful c++ classes. This has nothing to do with
Daemon, but I'd like to promote its use.
CVS: Module: mrl++
Header: /local/mrl/include/mrl++.h
Linkable: /local/mrl/lib/libmrl++.[a,so]
WebCVS: http://www.cim.mcgill.ca/~mrl/cvsweb/cvsweb.cgi/mrl++
Docs: There is a(n outdated) README in the CVS source
Test source: None.
Dependencies: None
Comments:
More documents are needed.