The Understand GUI is powerful and has a lot of different reporting options, but, at some point, you probably need to access information from you code in a different manner than anything we’ve thought of. For that reason Understand has several different APIs that let you query the data Understand captures about your code. The API has several flavors: Perl, Python, C and Java, with a customer added .NET API as well. The APIs are read-only, they do not modify the Understand project. If you need to do that programmatically, take a look at und. While the APIs each target a different language, they all share a common way of accessing the data in Understand.
The API Tutorials are the best way to learn those concepts and are almost always the best place to start.
Here is a brief overview of each of our different APIs:
The Perl API is Understand’s most robust API because it is built into the GUI. Several of the graphs and reports in Understand are actually written with the API and you can write your own graph and report plugins for the GUI in addition to simply pulling information out of the Understand database. Many sample scripts for the Perl API ship with Understand in the scripts folder. More details on the Perl API and how to run scripts with it are available here.
The Python API requires a Python 3 installation and allows full access to the Understand database from your python scripts. Several examples also ship with Understand in the scripts folder. The getting started steps for the Python API are here.
The Understand C API will allow you to access the data that Understand captures from inside of your C programs. You can read more about it here.
The Java API was written as part of creating the Understand Eclipse Plugin. For that reason it is more light weight it does not have the full capabilities of the other APIs. More details on using it can be read here.
One of our users, Chris Johnson, has developed a .NET sdk wrapper for the Understand API. The API is written in managed C++ (i.e. C++/CLI), and once compiled, can be accessed by any programming language that targets the .NET framework. More details at understandapi.codeplex.com Thanks, Chris!