34 lines
916 B
C++
34 lines
916 B
C++
#pragma once
|
|
|
|
#include "App.h"
|
|
|
|
#include "AppManifest.h"
|
|
#include "Mutex.h"
|
|
|
|
namespace tt {
|
|
|
|
class AppData {
|
|
public:
|
|
Mutex* mutex;
|
|
const AppManifest* manifest;
|
|
AppState state = AppStateInitial;
|
|
/** @brief Memory marker at start of app, to detect memory leaks */
|
|
size_t memory = 0;
|
|
AppFlags flags = {
|
|
.flags = 0
|
|
};
|
|
/** @brief Optional parameters to start the app with
|
|
* When these are stored in the app struct, the struct takes ownership.
|
|
* Do not mutate after app creation.
|
|
*/
|
|
Bundle parameters;
|
|
/** @brief @brief Contextual data related to the running app's instance
|
|
* The app can attach its data to this.
|
|
* The lifecycle is determined by the on_start and on_stop methods in the AppManifest.
|
|
* These manifest methods can optionally allocate/free data that is attached here.
|
|
*/
|
|
void* _Nullable data = nullptr;
|
|
};
|
|
|
|
} // namespace
|