Background

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:

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 API

VestaSource

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.

ReposUI

There are a number of functions in the ReposUI module which are commonly used. The C++ header is in ReposUI.H in the repos_ui package. The SWIG interface is defined by ReposUI.i in the SWIG package.

VestaConfig

The VestaConfig module is the API for accessing the Vesta configuration file (vesta.cfg).

FP

The FP module pertaings to fingerprinting. The C++ class for a fingerprint is FP::Tag.

ParseImports

The ParseImports module is for parsing the imports of an SDL model file. It's used internally by vimports and vupdate.

Replicator

The Replicator module is an API for performing replication between repositories.