A HAM provides an API for you to use in order to interact with it. This API provides a collection of functions to:
The API is implemented as a library that you can link against. The library is thread-safe and also cancellation-safe.