# Applications

## Global states

```c
/// Get application global states. Parse variables are put into \c global_states
/// \param app_id Application ID
/// \param global_states Key-value pairs to store variables
/// \return codes
///     * VTC_SUCCESS on success: key-values have been parsed correctly and put into global_states
///     * VTC_ERROR_INTERNAL if unable to instantiate parser
///     * VTC_ERROR_NOT_FOUND if key not found
ret_code_t
vertices_application_get(uint64_t app_id, app_values_t * global_states);
```

### Parameters

* `app_id`: application ID.
* `global_states`: pointer to `app_values`. This structure can store several key-value pairs (integer or byte slices). Make sure to init to 0 before passing to the function.

### Return codes

* `VTC_SUCCESS` if the application data have been parsed into `global_states`
* `VTC_ERROR_INTERAL` if the parser cannot be instantiated.
* �`VTC_ERROR_NOT_FOUND` if JSON keys cannot be correctly parsed
* `VTC_ERROR_OFFLINE` if offline
* `VTC_HTTP_ERROR` on HTTP error
