Skip to content

Commit e244993

Browse files
committed
updates
1 parent 45abc5a commit e244993

File tree

9 files changed

+121
-171
lines changed

9 files changed

+121
-171
lines changed

source/gameanalytics/GACommon.h

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -38,67 +38,6 @@ namespace gameanalytics
3838
using nlohmann::json;
3939
using StringVector = std::vector<std::string>;
4040

41-
/*!
42-
@enum
43-
@discussion
44-
This enum is used to specify flow in resource events
45-
@constant GAResourceFlowTypeSource
46-
Used when adding to a resource currency
47-
@constant GAResourceFlowTypeSink
48-
Used when subtracting from a resource currency
49-
*/
50-
enum EGAResourceFlowType
51-
{
52-
Source = 1,
53-
Sink = 2
54-
};
55-
56-
/*!
57-
@enum
58-
@discussion
59-
his enum is used to specify status for progression event
60-
@constant GAProgressionStatusStart
61-
User started progression
62-
@constant GAProgressionStatusComplete
63-
User succesfully ended a progression
64-
@constant GAProgressionStatusFail
65-
User failed a progression
66-
*/
67-
enum EGAProgressionStatus
68-
{
69-
Start = 1,
70-
Complete = 2,
71-
Fail = 3
72-
};
73-
74-
/*!
75-
@enum
76-
@discussion
77-
his enum is used to specify severity of an error event
78-
@constant GAErrorSeverityDebug
79-
@constant GAErrorSeverityInfo
80-
@constant GAErrorSeverityWarning
81-
@constant GAErrorSeverityError
82-
@constant GAErrorSeverityCritical
83-
*/
84-
enum EGAErrorSeverity
85-
{
86-
Debug = 1,
87-
Info = 2,
88-
Warning = 3,
89-
Error = 4,
90-
Critical = 5
91-
};
92-
93-
enum EGALoggerMessageType
94-
{
95-
LogError = 0,
96-
LogWarning = 1,
97-
LogInfo = 2,
98-
LogDebug = 3,
99-
LogVerbose = 4
100-
};
101-
10241
using LogHandler = std::function<void(std::string const&, EGALoggerMessageType)>;
10342
using FPSTracker = std::function<float()>;
10443

source/gameanalytics/GAState.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ namespace gameanalytics
3535

3636
GAState::GAState()
3737
{
38-
static int i = 0;
39-
std::cout << "ctor called " << i << '\n';
40-
++i;
4138
}
4239

4340
GAState::~GAState()
@@ -641,11 +638,11 @@ namespace gameanalytics
641638
}
642639
catch (json::exception& e)
643640
{
644-
logging::GALogger::e("Failed to parse json: %s", e.what());
641+
logging::GALogger::e("ensurePersistedStates - Failed to parse json: %s", e.what());
645642
}
646643
catch (std::exception& e)
647644
{
648-
logging::GALogger::e("Exception thrown: %s", e.what());
645+
logging::GALogger::e("ensurePersistedStates - Exception thrown: %s", e.what());
649646
}
650647
}
651648

@@ -813,11 +810,11 @@ namespace gameanalytics
813810
}
814811
catch (json::exception& e)
815812
{
816-
logging::GALogger::e("Failed to parse json: %s", e.what());
813+
logging::GALogger::e("startNewSession - Failed to parse json: %s", e.what());
817814
}
818815
catch (std::exception& e)
819816
{
820-
logging::GALogger::e("Exception thrown: %s", e.what());
817+
logging::GALogger::e("startNewSession - Exception thrown: %s", e.what());
821818
}
822819
}
823820

@@ -938,11 +935,11 @@ namespace gameanalytics
938935
}
939936
catch (json::exception& e)
940937
{
941-
logging::GALogger::e("Failed to parse json: %s", e.what());
938+
logging::GALogger::e("populateConfigurations - Failed to parse json: %s", e.what());
942939
}
943940
catch (std::exception& e)
944941
{
945-
logging::GALogger::e("Exception thrown: %s", e.what());
942+
logging::GALogger::e("populateConfigurations - Exception thrown: %s", e.what());
946943
}
947944
}
948945

@@ -1037,11 +1034,11 @@ namespace gameanalytics
10371034
}
10381035
catch (json::exception& e)
10391036
{
1040-
logging::GALogger::e("Failed to parse json: %s", e.what());
1037+
logging::GALogger::e("validateAndCleanCustomFields - Failed to parse json: %s", e.what());
10411038
}
10421039
catch (std::exception& e)
10431040
{
1044-
logging::GALogger::e("Exception thrown: %s", e.what());
1041+
logging::GALogger::e("validateAndCleanCustomFields - Exception thrown: %s", e.what());
10451042
}
10461043
}
10471044

@@ -1057,7 +1054,7 @@ namespace gameanalytics
10571054

10581055
int64_t GAState::calculateServerTimeOffset(int64_t serverTs)
10591056
{
1060-
int64_t clientTs = utilities::getTimestamp();
1057+
int64_t clientTs = utilities::GAUtilities::timeIntervalSince1970();
10611058
return _adjustTimestamp ? (serverTs - clientTs) : clientTs;
10621059
}
10631060

source/gameanalytics/GAState.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ namespace gameanalytics
196196
std::string _identifier;
197197

198198
bool _initialized = false;
199-
bool _adjustTimestamp = true;
199+
bool _adjustTimestamp = false;
200200

201201
int64_t _sessionStart = 0;
202202
int64_t _sessionNum = 0;

source/gameanalytics/GAUtilities.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#endif
2222

2323
#include "GAConstants.h"
24+
#include "stacktrace/call_stack.hpp"
2425

2526
// From crypto
2627
#define MINIZ_HEADER_FILE_ONLY
@@ -77,6 +78,37 @@ namespace gameanalytics
7778
return defValue;
7879
}
7980

81+
std::pair<std::string, int32_t> getRelevantFunctionFromCallStack()
82+
{
83+
std::string function;
84+
int32_t line = -1;
85+
86+
try
87+
{
88+
stacktrace::call_stack st;
89+
for(auto& entry : st.stack)
90+
{
91+
std::string f = entry.function;
92+
93+
if(f.find("GameAnalytics") == std::string::npos &&
94+
f.find("call_stack") == std::string::npos &&
95+
f.find("getRelevantFunctionFromCallStack") == std::string::npos)
96+
{
97+
function = f;
98+
line = entry.line;
99+
break;
100+
}
101+
}
102+
}
103+
catch(...)
104+
{
105+
function = "";
106+
line = -1;
107+
}
108+
109+
return std::make_pair(function, line);
110+
}
111+
80112
// Compress a STL string using zlib with given compression level and return the binary data.
81113
// Note: the zlib header is supressed
82114
static std::vector<char> deflate_string(const char* str, int compressionlevel = Z_BEST_COMPRESSION)

source/gameanalytics/GAUtilities.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ namespace gameanalytics
110110
std::string printArray(const StringVector& v, std::string const& delimiter = ", ");
111111
int64_t getNumberFromCache(json& node, std::string const& key, int64_t defValue = 0ll);
112112

113+
std::pair<std::string, int32_t> getRelevantFunctionFromCallStack();
114+
113115
struct GAUtilities
114116
{
115117
static std::string generateUUID();

source/gameanalytics/GameAnalytics.cpp

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ namespace gameanalytics
136136
}
137137
if (!validators::GAValidator::validateBuild(build))
138138
{
139-
logging::GALogger::i("Validation fail - configure build: Cannot be null, empty or above 32 length. String: %s", build.data());
139+
logging::GALogger::i("Validation fail - configure build: Cannot be null, empty or above 32 length. String: %s", build.c_str());
140140
return;
141141
}
142142
state::GAState::setBuild(build);
@@ -302,7 +302,7 @@ namespace gameanalytics
302302
logging::GALogger::i("Validation fail - configure engine: Engine version not supported. String: %s", gameEngineVersion.c_str());
303303
return;
304304
}
305-
device::GADevice::setGameEngineVersion(gameEngineVersion.data());
305+
device::GADevice::setGameEngineVersion(gameEngineVersion);
306306
});
307307
}
308308

@@ -544,26 +544,10 @@ namespace gameanalytics
544544
std::string function;
545545
int32_t line = -1;
546546

547-
try
548-
{
549-
stacktrace::call_stack st;
550-
for(auto& entry : st.stack)
551-
{
552-
std::string f = entry.function;
553-
554-
if(f.find("GameAnalytics") == std::string::npos && f.find("call_stack") == std::string::npos)
555-
{
556-
function = f;
557-
line = entry.line;
558-
break;
559-
}
560-
}
561-
}
562-
catch(...)
563-
{
564-
function = "";
565-
line = -1;
566-
}
547+
std::pair<std::string, int32_t> inFunction = utilities::getRelevantFunctionFromCallStack();
548+
549+
function = inFunction.first;
550+
line = inFunction.second;
567551

568552
if(fields.size() > maxFieldsSize)
569553
{
@@ -1031,7 +1015,7 @@ namespace gameanalytics
10311015

10321016
void GameAnalytics::OnAppResuming(Platform::Object ^sender, Platform::Object ^args)
10331017
{
1034-
(void)sender; // Unused parameter
1018+
(void)sender; // Unused parameter
10351019

10361020
if(_endThread)
10371021
{

source/gameanalytics/GameAnalyticsExtern.cpp

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
#include "GameAnalytics.h"
44
#include "GAUtilities.h"
5-
#include <vector>
65

7-
void ga_string_alloc(GAString* s, int size)
6+
void ga_string_alloc(GAString* s, unsigned int size)
87
{
98
if(s)
109
{
1110
s->str = (const char*)std::malloc(size);
1211
if(s->str)
1312
{
1413
s->size = size;
14+
std::memset(s->str, '\0', s->size);
1515
}
1616
}
1717
}
@@ -105,71 +105,67 @@ void initialize(const char *gameKey, const char *gameSecret)
105105
}
106106

107107
// add events
108-
void addBusinessEvent(const char *currency, double amount, const char *itemType, const char *itemId, const char *cartType, const char *fields, double mergeFields)
108+
void addBusinessEvent(const char *currency, double amount, const char *itemType, const char *itemId, const char *cartType, const char *fields, GA_BOOL mergeFields)
109109
{
110-
gameanalytics::GameAnalytics::addBusinessEvent(currency, (int)amount, itemType, itemId, cartType, fields, mergeFields != 0.0);
110+
gameanalytics::GameAnalytics::addBusinessEvent(currency, (int)amount, itemType, itemId, cartType, fields, mergeFields);
111111
}
112112

113-
void addResourceEvent(double flowType, const char *currency, double amount, const char *itemType, const char *itemId, const char *fields, double mergeFields)
113+
void addResourceEvent(int flowType, const char *currency, double amount, const char *itemType, const char *itemId, const char *fields, GA_BOOL mergeFields)
114114
{
115-
int flowTypeInt = (int)flowType;
116-
gameanalytics::GameAnalytics::addResourceEvent((gameanalytics::EGAResourceFlowType)flowTypeInt, currency, (float)amount, itemType, itemId, fields, mergeFields != 0.0);
115+
gameanalytics::GameAnalytics::addResourceEvent((gameanalytics::EGAResourceFlowType)flowType, currency, (float)amount, itemType, itemId, fields, mergeFields);
117116
}
118117

119-
void addProgressionEvent(double progressionStatus, const char *progression01, const char *progression02, const char *progression03, const char *fields, double mergeFields)
118+
void addProgressionEvent(int progressionStatus, const char *progression01, const char *progression02, const char *progression03, const char *fields, GA_BOOL mergeFields)
120119
{
121-
int progressionStatusInt = (int)progressionStatus;
122-
gameanalytics::GameAnalytics::addProgressionEvent((gameanalytics::EGAProgressionStatus)progressionStatusInt, progression01, progression02, progression03, fields, mergeFields != 0.0);
120+
gameanalytics::GameAnalytics::addProgressionEvent((gameanalytics::EGAProgressionStatus)progressionStatus, progression01, progression02, progression03, fields, mergeFields);
123121
}
124122

125-
void addProgressionEventWithScore(double progressionStatus, const char *progression01, const char *progression02, const char *progression03, double score, const char *fields, double mergeFields)
123+
void addProgressionEventWithScore(int progressionStatus, const char *progression01, const char *progression02, const char *progression03, double score, const char *fields, GA_BOOL mergeFields)
126124
{
127-
int progressionStatusInt = (int)progressionStatus;
128-
gameanalytics::GameAnalytics::addProgressionEvent((gameanalytics::EGAProgressionStatus)progressionStatusInt, progression01, progression02, progression03, (int)score, fields, mergeFields != 0.0);
125+
gameanalytics::GameAnalytics::addProgressionEvent((gameanalytics::EGAProgressionStatus)progressionStatus, progression01, progression02, progression03, (int)score, fields, mergeFields);
129126
}
130127

131-
void addDesignEvent(const char *eventId, const char *fields, double mergeFields)
128+
void addDesignEvent(const char *eventId, const char *fields, GA_BOOL mergeFields)
132129
{
133-
gameanalytics::GameAnalytics::addDesignEvent(eventId, fields, mergeFields != 0.0);
130+
gameanalytics::GameAnalytics::addDesignEvent(eventId, fields, mergeFields);
134131
}
135132

136-
void addDesignEventWithValue(const char *eventId, double value, const char *fields, double mergeFields)
133+
void addDesignEventWithValue(const char *eventId, double value, const char *fields, GA_BOOL mergeFields)
137134
{
138-
gameanalytics::GameAnalytics::addDesignEvent(eventId, value, fields, mergeFields != 0.0);
135+
gameanalytics::GameAnalytics::addDesignEvent(eventId, value, fields, mergeFields);
139136
}
140137

141-
void addErrorEvent(double severity, const char *message, const char *fields, double mergeFields)
138+
void addErrorEvent(int severity, const char *message, const char *fields, GA_BOOL mergeFields)
142139
{
143-
int severityInt = (int)severity;
144-
gameanalytics::GameAnalytics::addErrorEvent((gameanalytics::EGAErrorSeverity)severityInt, message, fields, mergeFields != 0.0);
140+
gameanalytics::GameAnalytics::addErrorEvent((gameanalytics::EGAErrorSeverity)severity, message, fields, mergeFields);
145141
}
146142

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

150-
void setEnabledInfoLog(double flag)
146+
void setEnabledInfoLog(GA_BOOL flag)
151147
{
152-
gameanalytics::GameAnalytics::setEnabledInfoLog(flag != 0.0);
148+
gameanalytics::GameAnalytics::setEnabledInfoLog(flag);
153149
}
154150

155-
void setEnabledVerboseLog(double flag)
151+
void setEnabledVerboseLog(GA_BOOL flag)
156152
{
157-
gameanalytics::GameAnalytics::setEnabledVerboseLog(flag != 0.0);
153+
gameanalytics::GameAnalytics::setEnabledVerboseLog(flag);
158154
}
159155

160-
void setEnabledManualSessionHandling(double flag)
156+
void setEnabledManualSessionHandling(GA_BOOL flag)
161157
{
162-
gameanalytics::GameAnalytics::setEnabledManualSessionHandling(flag != 0.0);
158+
gameanalytics::GameAnalytics::setEnabledManualSessionHandling(flag);
163159
}
164160

165-
void setEnabledErrorReporting(double flag)
161+
void setEnabledErrorReporting(GA_BOOL flag)
166162
{
167-
gameanalytics::GameAnalytics::setEnabledErrorReporting(flag != 0.0);
163+
gameanalytics::GameAnalytics::setEnabledErrorReporting(flag);
168164
}
169165

170-
void setEnabledEventSubmission(double flag)
166+
void setEnabledEventSubmission(GA_BOOL flag)
171167
{
172-
gameanalytics::GameAnalytics::setEnabledEventSubmission(flag != 0.0);
168+
gameanalytics::GameAnalytics::setEnabledEventSubmission(flag);
173169
}
174170

175171
void setCustomDimension01(const char *dimension01)
@@ -231,9 +227,9 @@ GAString getRemoteConfigsValueAsStringWithDefaultValue(const char *key, const ch
231227
return ga_string_fromString(returnValue);
232228
}
233229

234-
double isRemoteConfigsReady()
230+
GA_BOOL isRemoteConfigsReady()
235231
{
236-
return gameanalytics::GameAnalytics::isRemoteConfigsReady() ? 1 : 0;
232+
return gameanalytics::GameAnalytics::isRemoteConfigsReady() ? GA_TRUE : GA_FALSE;
237233
}
238234

239235
GAString getRemoteConfigsContentAsString()

0 commit comments

Comments
 (0)