SWIG is a tool that simplifies the process of making C/C++ functions and classes usable from multiple different target languages. We've used it to make the Vesta APIs accessible from Perl, Python, Tcl, and Java. See:
Familiarty with the Vesta C++ APIs is very helpful when trying to understand the SWIG intefaces to them from other languages. You may want to refer to:
A cross-reference of the code (not auto-updated yet but will be at some point)
A description of the implmentation of vcheckout (circa October 2004)
DevelopingVesta/CodeTourNotes : Notes taken by various people as we discuss different parts of the Vesta code.
Changes over the C++ API
It's worth noting that the SWIG intefaces are not identical to the C++ API. There are several changes we have made to make them more useful or apparopriate to the native data types in each target language. This mostly ammounts calling convention differences, but in somce cases are subtle functional changes.
The class which represents a file or directory in the Vesta reopository is VestaSource. It's C++ interface is in VestaSource.H in the repos package. The SWIG interface is defined by VestaSource.i in the SWIG package.
The VestaConfig module is the API for accessing the Vesta configuration file (vesta.cfg).
The FP module pertaings to fingerprinting. The C++ class for a fingerprint is FP::Tag.
The ParseImports module is for parsing the imports of an SDL model file. It's used internally by vimports and vupdate.
The Replicator module is an API for performing replication between repositories.