Skip to content

Commit def7929

Browse files
committed
removed memory allocations from the C imports, add prefix
1 parent 3cea19b commit def7929

File tree

2 files changed

+120
-151
lines changed

2 files changed

+120
-151
lines changed

source/gameanalytics/GameAnalyticsExtern.cpp

Lines changed: 64 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,6 @@
33
#include "GameAnalytics/GameAnalytics.h"
44
#include "GAUtilities.h"
55

6-
void ga_string_alloc(GAString* s, unsigned int size)
7-
{
8-
if(s)
9-
{
10-
s->str = (const char*)std::malloc(size);
11-
if(s->str)
12-
{
13-
s->size = size;
14-
std::memset(s->str, '\0', s->size);
15-
}
16-
}
17-
}
18-
19-
void ga_string_free(GAString* s)
20-
{
21-
if(s)
22-
{
23-
if(s->str && s->size)
24-
{
25-
std::free(s->str);
26-
s->str = NULL;
27-
s->size = 0;
28-
}
29-
}
30-
}
31-
326
StringVector makeStringVector(const char** arr, int size)
337
{
348
if(size > 0 && arr)
@@ -48,245 +22,250 @@ StringVector makeStringVector(const char** arr, int size)
4822
return {};
4923
}
5024

51-
GAString ga_string_fromString(std::string const& s)
25+
GAErrorCode copyStringBuffer(std::string const& s, char* out, int* size)
5226
{
53-
GAString gaStr = {};
54-
const unsigned int len = s.length() + 1;
55-
ga_string_alloc(&gaStr, len);
56-
57-
if(gaStr->str && gaStr->size)
27+
if(size && (*size > 0))
5828
{
59-
std::memcpy(gaStr, s.data(), s.length());
60-
gaStr[len - 1] = '\0';
29+
if(out && (*size >= s.size()))
30+
{
31+
std::memcpy(out, s.data(), s.size());
32+
}
33+
else
34+
{
35+
return EGABufferError;
36+
}
37+
38+
*size = s.size();
39+
return EGANoError;
6140
}
6241

63-
return gaStr;
42+
return EGAFailure;
6443
}
6544

66-
void configureAvailableCustomDimensions01(const char **customDimensions, int size)
45+
void gameAnalytics_configureAvailableCustomDimensions01(const char **customDimensions, int size)
6746
{
6847
StringVector values = makeStringVector(customDimensions, size);
6948
gameanalytics::GameAnalytics::configureAvailableCustomDimensions01(values);
7049
}
7150

72-
void configureAvailableCustomDimensions02(const char **customDimensions, int size)
51+
void gameAnalytics_configureAvailableCustomDimensions02(const char **customDimensions, int size)
7352
{
7453
StringVector values = makeStringVector(customDimensions, size);
7554
gameanalytics::GameAnalytics::configureAvailableCustomDimensions02(values);
7655
}
7756

78-
void configureAvailableCustomDimensions03(const char **customDimensions, int size)
57+
void gameAnalytics_configureAvailableCustomDimensions03(const char **customDimensions, int size)
7958
{
8059
StringVector values = makeStringVector(customDimensions, size);
8160
gameanalytics::GameAnalytics::configureAvailableCustomDimensions03(values);
8261
}
8362

84-
void configureAvailableResourceCurrencies(const char** currencies, int size)
63+
void gameAnalytics_configureAvailableResourceCurrencies(const char** currencies, int size)
8564
{
8665
StringVector values = makeStringVector(currencies, size);
8766
gameanalytics::GameAnalytics::configureAvailableResourceCurrencies(values);
8867
}
8968

90-
void configureAvailableResourceItemTypes(const char** resources, int size)
69+
void gameAnalytics_configureAvailableResourceItemTypes(const char** resources, int size)
9170
{
9271
StringVector values = makeStringVector(resources, size);
9372
gameanalytics::GameAnalytics::configureAvailableResourceItemTypes(values);
9473
}
9574

96-
void configureBuild(const char *build)
75+
void gameAnalytics_configureBuild(const char *build)
9776
{
9877
gameanalytics::GameAnalytics::configureBuild(build);
9978
}
10079

101-
void configureWritablePath(const char *writablePath)
80+
void gameAnalytics_configureWritablePath(const char *writablePath)
10281
{
10382
gameanalytics::GameAnalytics::configureWritablePath(writablePath);
10483
}
10584

106-
void configureDeviceModel(const char *deviceModel)
85+
void gameAnalytics_configureDeviceModel(const char *deviceModel)
10786
{
10887
gameanalytics::GameAnalytics::configureDeviceModel(deviceModel);
10988
}
11089

111-
void configureDeviceManufacturer(const char *deviceManufacturer)
90+
void gameAnalytics_configureDeviceManufacturer(const char *deviceManufacturer)
11291
{
11392
gameanalytics::GameAnalytics::configureDeviceManufacturer(deviceManufacturer);
11493
}
11594

11695
// the version of SDK code used in an engine. Used for sdk_version field.
11796
// !! if set then it will override the SdkWrapperVersion.
11897
// example "unity 4.6.9"
119-
void configureSdkGameEngineVersion(const char *sdkGameEngineVersion)
98+
void gameAnalytics_configureSdkGameEngineVersion(const char *sdkGameEngineVersion)
12099
{
121100
gameanalytics::GameAnalytics::configureSdkGameEngineVersion(sdkGameEngineVersion);
122101
}
123102

124103
// the version of the game engine (if used and version is available)
125-
void configureGameEngineVersion(const char *engineVersion)
104+
void gameAnalytics_configureGameEngineVersion(const char *engineVersion)
126105
{
127106
gameanalytics::GameAnalytics::configureGameEngineVersion(engineVersion);
128107
}
129108

130-
void configureUserId(const char *uId)
109+
void gameAnalytics_configureUserId(const char *uId)
131110
{
132111
gameanalytics::GameAnalytics::configureUserId(uId);
133112
}
134113

135-
void configureExternalUserId(const char* extId)
114+
void gameAnalytics_configureExternalUserId(const char* extId)
136115
{
137116
gameanalytics::GameAnalytics::configureExternalUserId(extId);
138117
}
139118

140119
// initialize - starting SDK (need configuration before starting)
141-
void initialize(const char *gameKey, const char *gameSecret)
120+
void gameAnalytics_initialize(const char *gameKey, const char *gameSecret)
142121
{
143122
gameanalytics::GameAnalytics::initialize(gameKey, gameSecret);
144123
}
145124

146125
// add events
147-
void addBusinessEvent(const char *currency, double amount, const char *itemType, const char *itemId, const char *cartType, const char *fields, GA_BOOL mergeFields)
126+
void gameAnalytics_addBusinessEvent(const char *currency, double amount, const char *itemType, const char *itemId, const char *cartType, const char *fields, GAStatus mergeFields)
148127
{
149128
gameanalytics::GameAnalytics::addBusinessEvent(currency, (int)amount, itemType, itemId, cartType, fields, mergeFields);
150129
}
151130

152-
void addResourceEvent(int flowType, const char *currency, double amount, const char *itemType, const char *itemId, const char *fields, GA_BOOL mergeFields)
131+
void gameAnalytics_addResourceEvent(int flowType, const char *currency, double amount, const char *itemType, const char *itemId, const char *fields, GAStatus mergeFields)
153132
{
154133
gameanalytics::GameAnalytics::addResourceEvent((gameanalytics::EGAResourceFlowType)flowType, currency, (float)amount, itemType, itemId, fields, mergeFields);
155134
}
156135

157-
void addProgressionEvent(int progressionStatus, const char *progression01, const char *progression02, const char *progression03, const char *fields, GA_BOOL mergeFields)
136+
void gameAnalytics_addProgressionEvent(int progressionStatus, const char *progression01, const char *progression02, const char *progression03, const char *fields, GAStatus mergeFields)
158137
{
159138
gameanalytics::GameAnalytics::addProgressionEvent((gameanalytics::EGAProgressionStatus)progressionStatus, progression01, progression02, progression03, fields, mergeFields);
160139
}
161140

162-
void addProgressionEventWithScore(int progressionStatus, const char *progression01, const char *progression02, const char *progression03, double score, const char *fields, GA_BOOL mergeFields)
141+
void gameAnalytics_addProgressionEventWithScore(int progressionStatus, const char *progression01, const char *progression02, const char *progression03, double score, const char *fields, GAStatus mergeFields)
163142
{
164143
gameanalytics::GameAnalytics::addProgressionEvent((gameanalytics::EGAProgressionStatus)progressionStatus, progression01, progression02, progression03, (int)score, fields, mergeFields);
165144
}
166145

167-
void addDesignEvent(const char *eventId, const char *fields, GA_BOOL mergeFields)
146+
void gameAnalytics_addDesignEvent(const char *eventId, const char *fields, GAStatus mergeFields)
168147
{
169-
gameanalytics::GameAnalytics::addDesignEvent(eventId, fields, mergeFields);
148+
gameanalytics::GameAnalytics::addDesignEvent(eventId, fields, (bool)mergeFields);
170149
}
171150

172-
void addDesignEventWithValue(const char *eventId, double value, const char *fields, GA_BOOL mergeFields)
151+
void gameAnalytics_addDesignEventWithValue(const char *eventId, double value, const char *fields, GAStatus mergeFields)
173152
{
174-
gameanalytics::GameAnalytics::addDesignEvent(eventId, value, fields, mergeFields);
153+
gameanalytics::GameAnalytics::addDesignEvent(eventId, value, fields, (bool)mergeFields);
175154
}
176155

177-
void addErrorEvent(int severity, const char *message, const char *fields, GA_BOOL mergeFields)
156+
void gameAnalytics_addErrorEvent(int severity, const char *message, const char *fields, GAStatus mergeFields)
178157
{
179-
gameanalytics::GameAnalytics::addErrorEvent((gameanalytics::EGAErrorSeverity)severity, message, fields, mergeFields);
158+
gameanalytics::GameAnalytics::addErrorEvent((gameanalytics::EGAErrorSeverity)severity, message, fields, (bool)mergeFields);
180159
}
181160

182161
// set calls can be changed at any time (pre- and post-initialize)
183162
// some calls only work after a configure is called (setCustomDimension)
184163

185-
void setEnabledInfoLog(GA_BOOL flag)
164+
void gameAnalytics_setEnabledInfoLog(GAStatus flag)
186165
{
187166
gameanalytics::GameAnalytics::setEnabledInfoLog(flag);
188167
}
189168

190-
void setEnabledVerboseLog(GA_BOOL flag)
169+
void gameAnalytics_setEnabledVerboseLog(GAStatus flag)
191170
{
192171
gameanalytics::GameAnalytics::setEnabledVerboseLog(flag);
193172
}
194173

195-
void setEnabledManualSessionHandling(GA_BOOL flag)
174+
void gameAnalytics_setEnabledManualSessionHandling(GAStatus flag)
196175
{
197176
gameanalytics::GameAnalytics::setEnabledManualSessionHandling(flag);
198177
}
199178

200-
void setEnabledErrorReporting(GA_BOOL flag)
179+
void gameAnalytics_setEnabledErrorReporting(GAStatus flag)
201180
{
202181
gameanalytics::GameAnalytics::setEnabledErrorReporting(flag);
203182
}
204183

205-
void setEnabledEventSubmission(GA_BOOL flag)
184+
void gameAnalytics_setEnabledEventSubmission(GAStatus flag)
206185
{
207186
gameanalytics::GameAnalytics::setEnabledEventSubmission(flag);
208187
}
209188

210-
void setCustomDimension01(const char *dimension01)
189+
void gameAnalytics_setCustomDimension01(const char *dimension01)
211190
{
212191
gameanalytics::GameAnalytics::setCustomDimension01(dimension01);
213192
}
214193

215-
void setCustomDimension02(const char *dimension02)
194+
void gameAnalytics_setCustomDimension02(const char *dimension02)
216195
{
217196
gameanalytics::GameAnalytics::setCustomDimension02(dimension02);
218197
}
219198

220-
void setCustomDimension03(const char *dimension03)
199+
void gameAnalytics_setCustomDimension03(const char *dimension03)
221200
{
222201
gameanalytics::GameAnalytics::setCustomDimension03(dimension03);
223202
}
224203

225-
void setGlobalCustomEventFields(const char *customFields)
204+
void gameAnalytics_setGlobalCustomEventFields(const char *customFields)
226205
{
227206
gameanalytics::GameAnalytics::setGlobalCustomEventFields(customFields);
228207
}
229208

230-
void gameAnalyticsStartSession()
209+
void gameAnalytics_startSession()
231210
{
232211
gameanalytics::GameAnalytics::startSession();
233212
}
234213

235-
void gameAnalyticsEndSession()
214+
void gameAnalytics_endSession()
236215
{
237216
gameanalytics::GameAnalytics::endSession();
238217
}
239218

240219
// game state changes
241220
// will affect how session is started / ended
242-
void onResume()
221+
void gameAnalytics_onResume()
243222
{
244223
gameanalytics::GameAnalytics::onResume();
245224
}
246225

247-
void onSuspend()
226+
void gameAnalytics_onSuspend()
248227
{
249228
gameanalytics::GameAnalytics::onSuspend();
250229
}
251230

252-
void onQuit()
231+
void gameAnalytics_onQuit()
253232
{
254233
gameanalytics::GameAnalytics::onQuit();
255234
}
256235

257-
GAString getRemoteConfigsValueAsString(const char *key)
236+
void gameAnalytics_getRemoteConfigsValueAsString(const char *key, char* out, int* size)
258237
{
259238
std::string returnValue = gameanalytics::GameAnalytics::getRemoteConfigsValueAsString(key);
260-
return ga_string_fromString(returnValue);
239+
return copyStringBuffer(returnValue, out, size);
261240
}
262241

263-
GAString getRemoteConfigsValueAsStringWithDefaultValue(const char *key, const char *defaultValue)
242+
GAErrorCode gameAnalytics_getRemoteConfigsValueAsStringWithDefaultValue(const char *key, const char *defaultValue, char* out, int* size)
264243
{
265244
std::string returnValue = gameanalytics::GameAnalytics::getRemoteConfigsValueAsString(key, defaultValue);
266-
return ga_string_fromString(returnValue);
245+
return copyStringBuffer(returnValue, out, size);
267246
}
268247

269-
GA_BOOL isRemoteConfigsReady()
248+
GAStatus gameAnalytics_isRemoteConfigsReady()
270249
{
271-
return gameanalytics::GameAnalytics::isRemoteConfigsReady() ? GA_TRUE : GA_FALSE;
250+
return gameanalytics::GameAnalytics::isRemoteConfigsReady() ? GAEnabled : GADisabled;
272251
}
273252

274-
GAString getRemoteConfigsContentAsString()
253+
GAErrorCode gameAnalytics_getRemoteConfigsContentAsString(char* out, int* size)
275254
{
276255
std::string returnValue = gameanalytics::GameAnalytics::getRemoteConfigsContentAsString();
277-
return ga_string_fromString(returnValue);
256+
return copyStringBuffer(returnValue, out, size);
278257
}
279258

280-
GAString getABTestingId()
259+
GAErrorCode gameAnalytics_getABTestingId(char* out, int* size)
281260
{
282261
std::string returnValue = gameanalytics::GameAnalytics::getABTestingId();
283-
return ga_string_fromString(returnValue);
262+
return copyStringBuffer(returnValue, out, size);
284263
}
285264

286-
GAString getABTestingVariantId()
265+
GAErrorCode gameAnalytics_getABTestingVariantId(char* out, int* size)
287266
{
288267
std::string returnValue = gameanalytics::GameAnalytics::getABTestingVariantId();
289-
return ga_string_fromString(returnValue);
268+
return copyStringBuffer(returnValue, out, size);
290269
}
291270

292271
#endif

0 commit comments

Comments
 (0)