@@ -34,7 +34,7 @@ typedef struct GoogleAnalytics_Reserved_Opaque GoogleAnalytics_Reserved;
34
34
* using GoogleAnalytics_Options_Create(), initialization will fail, and the
35
35
* caller will be responsible for destroying the options.
36
36
*/
37
- ANALYTICS_API typedef struct {
37
+ typedef struct ANALYTICS_API GoogleAnalytics_Options {
38
38
/**
39
39
* @brief The unique identifier for the Firebase app across all of Firebase
40
40
* with a platform-specific format. This is a required field, can not be null
@@ -68,12 +68,54 @@ ANALYTICS_API typedef struct {
68
68
*/
69
69
bool analytics_collection_enabled_at_first_launch ;
70
70
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
+
71
80
/**
72
81
* @brief Reserved for internal use by the SDK.
73
82
*/
74
83
GoogleAnalytics_Reserved * reserved ;
75
84
} GoogleAnalytics_Options ;
76
85
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
+
77
119
/**
78
120
* @brief Creates an instance of GoogleAnalytics_Options with default values.
79
121
*
@@ -149,25 +191,27 @@ extern "C" {
149
191
extern GoogleAnalytics_Options * (* ptr_GoogleAnalytics_Options_Create )();
150
192
extern void (* ptr_GoogleAnalytics_Options_Destroy )(GoogleAnalytics_Options * options );
151
193
extern 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 );
155
197
extern void (* ptr_GoogleAnalytics_Item_Destroy )(GoogleAnalytics_Item * item );
156
198
extern 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 );
158
200
extern void (* ptr_GoogleAnalytics_ItemVector_Destroy )(GoogleAnalytics_ItemVector * item_vector );
159
201
extern 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 );
164
206
extern 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 );
166
208
extern void (* ptr_GoogleAnalytics_LogEvent )(const char * name , GoogleAnalytics_EventParameters * parameters );
167
209
extern void (* ptr_GoogleAnalytics_SetUserProperty )(const char * name , const char * value );
168
210
extern void (* ptr_GoogleAnalytics_SetUserId )(const char * user_id );
169
211
extern void (* ptr_GoogleAnalytics_ResetAnalyticsData )();
170
212
extern void (* ptr_GoogleAnalytics_SetAnalyticsCollectionEnabled )(bool enabled );
213
+ extern void (* ptr_GoogleAnalytics_SetLogCallback )(GoogleAnalytics_LogCallback callback );
214
+ extern void (* ptr_GoogleAnalytics_NotifyAppLifecycleChange )(GoogleAnalytics_AppLifecycleState state );
171
215
172
216
#define GoogleAnalytics_Options_Create ptr_GoogleAnalytics_Options_Create
173
217
#define GoogleAnalytics_Options_Destroy ptr_GoogleAnalytics_Options_Destroy
@@ -191,6 +235,8 @@ extern void (*ptr_GoogleAnalytics_SetAnalyticsCollectionEnabled)(bool enabled);
191
235
#define GoogleAnalytics_SetUserId ptr_GoogleAnalytics_SetUserId
192
236
#define GoogleAnalytics_ResetAnalyticsData ptr_GoogleAnalytics_ResetAnalyticsData
193
237
#define GoogleAnalytics_SetAnalyticsCollectionEnabled ptr_GoogleAnalytics_SetAnalyticsCollectionEnabled
238
+ #define GoogleAnalytics_SetLogCallback ptr_GoogleAnalytics_SetLogCallback
239
+ #define GoogleAnalytics_NotifyAppLifecycleChange ptr_GoogleAnalytics_NotifyAppLifecycleChange
194
240
// clang-format on
195
241
196
242
// Number of Google Analytics functions expected to be loaded from the DLL.
0 commit comments