@@ -34,7 +34,7 @@ typedef struct GoogleAnalytics_Reserved_Opaque GoogleAnalytics_Reserved;
3434 * using GoogleAnalytics_Options_Create(), initialization will fail, and the
3535 * caller will be responsible for destroying the options.
3636 */
37- ANALYTICS_API typedef struct {
37+ typedef struct ANALYTICS_API GoogleAnalytics_Options {
3838 /**
3939 * @brief The unique identifier for the Firebase app across all of Firebase
4040 * with a platform-specific format. This is a required field, can not be null
@@ -68,12 +68,54 @@ ANALYTICS_API typedef struct {
6868 */
6969 bool analytics_collection_enabled_at_first_launch ;
7070
71+ /**
72+ * @brief An optional path to a folder where the SDK can store its data.
73+ * If not provided, the SDK will store its data in the same folder as the
74+ * executable.
75+ *
76+ * The path must pre-exist and the app has read and write access to it.
77+ */
78+ const char * app_data_directory ;
79+
7180 /**
7281 * @brief Reserved for internal use by the SDK.
7382 */
7483 GoogleAnalytics_Reserved * reserved ;
7584} GoogleAnalytics_Options ;
7685
86+ /**
87+ * @brief The state of an app in its lifecycle.
88+ */
89+ typedef enum GoogleAnalytics_AppLifecycleState {
90+ /**
91+ * @brief This is an invalid state that is used to capture unininitialized
92+ * values.
93+ */
94+ GoogleAnalytics_AppLifecycleState_kUnknown = 0 ,
95+ /**
96+ * @brief The app is about to be terminated.
97+ */
98+ GoogleAnalytics_AppLifecycleState_kTermination = 1 ,
99+ } GoogleAnalytics_AppLifecycleState ;
100+
101+ /**
102+ * @brief The log level of a log message.
103+ */
104+ typedef enum GoogleAnalytics_LogLevel {
105+ kDebug ,
106+ kInfo ,
107+ kWarning ,
108+ kError ,
109+ } GoogleAnalytics_LogLevel ;
110+
111+ /**
112+ * @brief Function pointer type for a log callback.
113+ *
114+ * @param[in] message The log message string.
115+ */
116+ typedef void (* GoogleAnalytics_LogCallback )(GoogleAnalytics_LogLevel log_level ,
117+ const char * message );
118+
77119/**
78120 * @brief Creates an instance of GoogleAnalytics_Options with default values.
79121 *
@@ -149,25 +191,27 @@ extern "C" {
149191extern GoogleAnalytics_Options * (* ptr_GoogleAnalytics_Options_Create )();
150192extern void (* ptr_GoogleAnalytics_Options_Destroy )(GoogleAnalytics_Options * options );
151193extern GoogleAnalytics_Item * (* ptr_GoogleAnalytics_Item_Create )();
152- extern void (* ptr_GoogleAnalytics_Item_InsertInt )(GoogleAnalytics_Item * item , const char * key , int64_t value );
153- extern void (* ptr_GoogleAnalytics_Item_InsertDouble )(GoogleAnalytics_Item * item , const char * key , double value );
154- extern void (* ptr_GoogleAnalytics_Item_InsertString )(GoogleAnalytics_Item * item , const char * key , const char * value );
194+ extern bool (* ptr_GoogleAnalytics_Item_InsertInt )(GoogleAnalytics_Item * item , const char * key , int64_t value );
195+ extern bool (* ptr_GoogleAnalytics_Item_InsertDouble )(GoogleAnalytics_Item * item , const char * key , double value );
196+ extern bool (* ptr_GoogleAnalytics_Item_InsertString )(GoogleAnalytics_Item * item , const char * key , const char * value );
155197extern void (* ptr_GoogleAnalytics_Item_Destroy )(GoogleAnalytics_Item * item );
156198extern GoogleAnalytics_ItemVector * (* ptr_GoogleAnalytics_ItemVector_Create )();
157- extern void (* ptr_GoogleAnalytics_ItemVector_InsertItem )(GoogleAnalytics_ItemVector * item_vector , GoogleAnalytics_Item * item );
199+ extern bool (* ptr_GoogleAnalytics_ItemVector_InsertItem )(GoogleAnalytics_ItemVector * item_vector , GoogleAnalytics_Item * item );
158200extern void (* ptr_GoogleAnalytics_ItemVector_Destroy )(GoogleAnalytics_ItemVector * item_vector );
159201extern GoogleAnalytics_EventParameters * (* ptr_GoogleAnalytics_EventParameters_Create )();
160- extern void (* ptr_GoogleAnalytics_EventParameters_InsertInt )(GoogleAnalytics_EventParameters * event_parameter_map , const char * key , int64_t value );
161- extern void (* ptr_GoogleAnalytics_EventParameters_InsertDouble )(GoogleAnalytics_EventParameters * event_parameter_map , const char * key , double value );
162- extern void (* ptr_GoogleAnalytics_EventParameters_InsertString )(GoogleAnalytics_EventParameters * event_parameter_map , const char * key , const char * value );
163- extern void (* ptr_GoogleAnalytics_EventParameters_InsertItemVector )(GoogleAnalytics_EventParameters * event_parameter_map , const char * key , GoogleAnalytics_ItemVector * value );
202+ extern bool (* ptr_GoogleAnalytics_EventParameters_InsertInt )(GoogleAnalytics_EventParameters * event_parameter_map , const char * key , int64_t value );
203+ extern bool (* ptr_GoogleAnalytics_EventParameters_InsertDouble )(GoogleAnalytics_EventParameters * event_parameter_map , const char * key , double value );
204+ extern bool (* ptr_GoogleAnalytics_EventParameters_InsertString )(GoogleAnalytics_EventParameters * event_parameter_map , const char * key , const char * value );
205+ extern bool (* ptr_GoogleAnalytics_EventParameters_InsertItemVector )(GoogleAnalytics_EventParameters * event_parameter_map , const char * key , GoogleAnalytics_ItemVector * value );
164206extern void (* ptr_GoogleAnalytics_EventParameters_Destroy )(GoogleAnalytics_EventParameters * event_parameter_map );
165- extern bool (* ptr_GoogleAnalytics_Initialize )(const GoogleAnalytics_Options * options );
207+ extern bool (* ptr_GoogleAnalytics_Initialize )(GoogleAnalytics_Options * options );
166208extern void (* ptr_GoogleAnalytics_LogEvent )(const char * name , GoogleAnalytics_EventParameters * parameters );
167209extern void (* ptr_GoogleAnalytics_SetUserProperty )(const char * name , const char * value );
168210extern void (* ptr_GoogleAnalytics_SetUserId )(const char * user_id );
169211extern void (* ptr_GoogleAnalytics_ResetAnalyticsData )();
170212extern void (* ptr_GoogleAnalytics_SetAnalyticsCollectionEnabled )(bool enabled );
213+ extern void (* ptr_GoogleAnalytics_SetLogCallback )(GoogleAnalytics_LogCallback callback );
214+ extern void (* ptr_GoogleAnalytics_NotifyAppLifecycleChange )(GoogleAnalytics_AppLifecycleState state );
171215
172216#define GoogleAnalytics_Options_Create ptr_GoogleAnalytics_Options_Create
173217#define GoogleAnalytics_Options_Destroy ptr_GoogleAnalytics_Options_Destroy
@@ -191,6 +235,8 @@ extern void (*ptr_GoogleAnalytics_SetAnalyticsCollectionEnabled)(bool enabled);
191235#define GoogleAnalytics_SetUserId ptr_GoogleAnalytics_SetUserId
192236#define GoogleAnalytics_ResetAnalyticsData ptr_GoogleAnalytics_ResetAnalyticsData
193237#define GoogleAnalytics_SetAnalyticsCollectionEnabled ptr_GoogleAnalytics_SetAnalyticsCollectionEnabled
238+ #define GoogleAnalytics_SetLogCallback ptr_GoogleAnalytics_SetLogCallback
239+ #define GoogleAnalytics_NotifyAppLifecycleChange ptr_GoogleAnalytics_NotifyAppLifecycleChange
194240// clang-format on
195241
196242// Number of Google Analytics functions expected to be loaded from the DLL.
0 commit comments