UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IAnalyticsPropertyStore.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Misc/DateTime.h"
9
14{
15public:
17 enum class EStatusCode : uint32
18 {
20 Success,
24 BadType,
27 };
28
29public:
30 virtual ~IAnalyticsPropertyStore() = default;
31
35 virtual uint32 Num() const = 0;
36
40 virtual bool Contains(const FString& Key) const = 0;
41
46 virtual bool Remove(const FString& Key) = 0;
47
51 virtual void RemoveAll() = 0;
52
60 virtual EStatusCode Set(const FString& Key, int32 Value) = 0;
61 virtual EStatusCode Set(const FString& Key, uint32 Value) = 0;
62 virtual EStatusCode Set(const FString& Key, int64 Value) = 0;
63 virtual EStatusCode Set(const FString& Key, uint64 Value) = 0;
64 virtual EStatusCode Set(const FString& Key, float Value) = 0;
65 virtual EStatusCode Set(const FString& Key, double Value) = 0;
66 virtual EStatusCode Set(const FString& Key, bool Value) = 0;
67 virtual EStatusCode Set(const FString& Key, const FString& Value, uint32 CharCountCapacityHint = 0) = 0;
68 virtual EStatusCode Set(const FString& Key, const FDateTime& Value) = 0;
69
83 virtual EStatusCode Set(const FString& Key, int32 Value, const TFunction<bool(const int32* /*Actual*/, const int32& /*Proposed*/)>& ConditionFn) = 0;
84 virtual EStatusCode Set(const FString& Key, uint32 Value, const TFunction<bool(const uint32* /*Actual*/, const uint32& /*Proposed*/)>& ConditionFn) = 0;
85 virtual EStatusCode Set(const FString& Key, int64 Value, const TFunction<bool(const int64* /*Actual*/, const int64& /*Proposed*/)>& ConditionFn) = 0;
86 virtual EStatusCode Set(const FString& Key, uint64 Value, const TFunction<bool(const uint64* /*Actual*/, const uint64& /*Proposed*/)>& ConditionFn) = 0;
87 virtual EStatusCode Set(const FString& Key, float Value, const TFunction<bool(const float* /*Actual*/, const float& /*Proposed*/)>& ConditionFn) = 0;
88 virtual EStatusCode Set(const FString& Key, double Value, const TFunction<bool(const double* /*Actual*/, const double& /*Proposed*/)>& ConditionFn) = 0;
89 virtual EStatusCode Set(const FString& Key, bool Value, const TFunction<bool(const bool* /*Actual*/, const bool& /*Proposed*/)>& ConditionFn) = 0;
90 virtual EStatusCode Set(const FString& Key, const FString& Value, const TFunction<bool(const FString* /*Actual*/, const FString& /*Proposed*/)>& ConditionFn) = 0;
91 virtual EStatusCode Set(const FString& Key, const FDateTime& Value, const TFunction<bool(const FDateTime* /*Actual*/, const FDateTime& /*Proposed*/)>& ConditionFn) = 0;
92
103 virtual EStatusCode Update(const FString& Key, const TFunction<bool(int32& /*InOutValue*/)>& UpdateFn) = 0;
104 virtual EStatusCode Update(const FString& Key, const TFunction<bool(uint32& /*InOutValue*/)>& UpdateFn) = 0;
105 virtual EStatusCode Update(const FString& Key, const TFunction<bool(int64& /*InOutValue*/)>& UpdateFn) = 0;
106 virtual EStatusCode Update(const FString& Key, const TFunction<bool(uint64& /*InOutValue*/)>& UpdateFn) = 0;
107 virtual EStatusCode Update(const FString& Key, const TFunction<bool(float& /*InOutValue*/)>& UpdateFn) = 0;
108 virtual EStatusCode Update(const FString& Key, const TFunction<bool(double& /*InOutValue*/)>& UpdateFn) = 0;
109 virtual EStatusCode Update(const FString& Key, const TFunction<bool(bool& /*InOutValue*/)>& UpdateFn) = 0;
110 virtual EStatusCode Update(const FString& Key, const TFunction<bool(FString& /*InOutValue*/)>& UpdateFn) = 0;
111 virtual EStatusCode Update(const FString& Key, const TFunction<bool(FDateTime& /*InOutValue*/)>& UpdateFn) = 0;
112
122 virtual EStatusCode Get(const FString& Key, int32& OutValue) const = 0;
123 virtual EStatusCode Get(const FString& Key, uint32& OutValue) const = 0;
124 virtual EStatusCode Get(const FString& Key, int64& OutValue) const = 0;
125 virtual EStatusCode Get(const FString& Key, uint64& OutValue) const = 0;
126 virtual EStatusCode Get(const FString& Key, float& OutValue) const = 0;
127 virtual EStatusCode Get(const FString& Key, double& OutValue) const = 0;
128 virtual EStatusCode Get(const FString& Key, bool& OutValue) const = 0;
129 virtual EStatusCode Get(const FString& Key, FString& OutValue) const = 0;
130 virtual EStatusCode Get(const FString& Key, FDateTime& OutValue)const = 0;
131
136 virtual void VisitAll(const TFunction<void(FAnalyticsEventAttribute&&)>& VisitFn) const = 0;
137
144 virtual bool Flush(bool bAsync = false, const FTimespan& Timeout = FTimespan::MaxValue()) = 0;
145};
146
157template<typename T>
159{
160public:
162
163 IAnalyticsPropertyStore::EStatusCode Set(IAnalyticsPropertyStore* Store, const T& Value) const { return Store->Set(Key, Value); }
164 IAnalyticsPropertyStore::EStatusCode Set(IAnalyticsPropertyStore* Store, const T& Value, const TFunction<bool(const T*, const T&)>& ConditionFn) const { return Store->Set(Key, Value, ConditionFn); }
166 IAnalyticsPropertyStore::EStatusCode Update(IAnalyticsPropertyStore* Store, const TFunction<bool(T& InOutValue)>& UpdateFn) const { return Store->Update(Key, UpdateFn); }
167
168 const FString Key;
169};
170
172template<>
173class TAnalyticsProperty<FString>
174{
175public:
177
179 IAnalyticsPropertyStore::EStatusCode Set(IAnalyticsPropertyStore* Store, const FString& Value, const TFunction<bool(const FString*, const FString&)>& ConditionFn) const { return Store->Set(Key, Value, ConditionFn); }
181 IAnalyticsPropertyStore::EStatusCode Update(IAnalyticsPropertyStore* Store, const TFunction<bool(FString& InOutValue)>& UpdateFn) const { return Store->Update(Key, UpdateFn); }
182
183 const FString Key;
184};
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition IAnalyticsPropertyStore.h:14
virtual EStatusCode Update(const FString &Key, const TFunction< bool(uint32 &)> &UpdateFn)=0
virtual EStatusCode Update(const FString &Key, const TFunction< bool(bool &)> &UpdateFn)=0
virtual EStatusCode Get(const FString &Key, int32 &OutValue) const =0
virtual EStatusCode Get(const FString &Key, float &OutValue) const =0
virtual EStatusCode Set(const FString &Key, const FString &Value, uint32 CharCountCapacityHint=0)=0
virtual EStatusCode Set(const FString &Key, int64 Value, const TFunction< bool(const int64 *, const int64 &)> &ConditionFn)=0
virtual EStatusCode Set(const FString &Key, uint64 Value, const TFunction< bool(const uint64 *, const uint64 &)> &ConditionFn)=0
virtual EStatusCode Set(const FString &Key, const FString &Value, const TFunction< bool(const FString *, const FString &)> &ConditionFn)=0
virtual EStatusCode Set(const FString &Key, uint32 Value)=0
virtual EStatusCode Update(const FString &Key, const TFunction< bool(FString &)> &UpdateFn)=0
virtual EStatusCode Set(const FString &Key, float Value)=0
virtual bool Flush(bool bAsync=false, const FTimespan &Timeout=FTimespan::MaxValue())=0
virtual EStatusCode Get(const FString &Key, double &OutValue) const =0
virtual EStatusCode Set(const FString &Key, int32 Value, const TFunction< bool(const int32 *, const int32 &)> &ConditionFn)=0
virtual EStatusCode Update(const FString &Key, const TFunction< bool(int32 &)> &UpdateFn)=0
virtual EStatusCode Get(const FString &Key, FDateTime &OutValue) const =0
virtual EStatusCode Update(const FString &Key, const TFunction< bool(int64 &)> &UpdateFn)=0
virtual EStatusCode Get(const FString &Key, FString &OutValue) const =0
virtual EStatusCode Set(const FString &Key, uint64 Value)=0
virtual EStatusCode Get(const FString &Key, uint32 &OutValue) const =0
virtual EStatusCode Get(const FString &Key, int64 &OutValue) const =0
virtual EStatusCode Update(const FString &Key, const TFunction< bool(FDateTime &)> &UpdateFn)=0
virtual EStatusCode Set(const FString &Key, bool Value)=0
virtual void RemoveAll()=0
EStatusCode
Definition IAnalyticsPropertyStore.h:18
virtual EStatusCode Set(const FString &Key, int64 Value)=0
virtual bool Remove(const FString &Key)=0
virtual EStatusCode Get(const FString &Key, uint64 &OutValue) const =0
virtual EStatusCode Set(const FString &Key, const FDateTime &Value)=0
virtual EStatusCode Set(const FString &Key, int32 Value)=0
virtual EStatusCode Update(const FString &Key, const TFunction< bool(uint64 &)> &UpdateFn)=0
virtual EStatusCode Set(const FString &Key, uint32 Value, const TFunction< bool(const uint32 *, const uint32 &)> &ConditionFn)=0
virtual EStatusCode Set(const FString &Key, double Value, const TFunction< bool(const double *, const double &)> &ConditionFn)=0
virtual EStatusCode Update(const FString &Key, const TFunction< bool(float &)> &UpdateFn)=0
virtual EStatusCode Set(const FString &Key, float Value, const TFunction< bool(const float *, const float &)> &ConditionFn)=0
virtual bool Contains(const FString &Key) const =0
virtual ~IAnalyticsPropertyStore()=default
virtual EStatusCode Set(const FString &Key, double Value)=0
virtual void VisitAll(const TFunction< void(FAnalyticsEventAttribute &&)> &VisitFn) const =0
virtual EStatusCode Get(const FString &Key, bool &OutValue) const =0
virtual EStatusCode Set(const FString &Key, const FDateTime &Value, const TFunction< bool(const FDateTime *, const FDateTime &)> &ConditionFn)=0
virtual EStatusCode Set(const FString &Key, bool Value, const TFunction< bool(const bool *, const bool &)> &ConditionFn)=0
virtual uint32 Num() const =0
virtual EStatusCode Update(const FString &Key, const TFunction< bool(double &)> &UpdateFn)=0
TAnalyticsProperty(const TCHAR *InKey)
Definition IAnalyticsPropertyStore.h:176
IAnalyticsPropertyStore::EStatusCode Get(IAnalyticsPropertyStore *Store, FString &OutValue) const
Definition IAnalyticsPropertyStore.h:180
IAnalyticsPropertyStore::EStatusCode Update(IAnalyticsPropertyStore *Store, const TFunction< bool(FString &InOutValue)> &UpdateFn) const
Definition IAnalyticsPropertyStore.h:181
IAnalyticsPropertyStore::EStatusCode Set(IAnalyticsPropertyStore *Store, const FString &Value, const TFunction< bool(const FString *, const FString &)> &ConditionFn) const
Definition IAnalyticsPropertyStore.h:179
const FString Key
Definition IAnalyticsPropertyStore.h:183
IAnalyticsPropertyStore::EStatusCode Set(IAnalyticsPropertyStore *Store, const FString &Value, uint32 CharCountCapacityHint=0) const
Definition IAnalyticsPropertyStore.h:178
Definition IAnalyticsPropertyStore.h:159
TAnalyticsProperty(const TCHAR *InKey)
Definition IAnalyticsPropertyStore.h:161
IAnalyticsPropertyStore::EStatusCode Update(IAnalyticsPropertyStore *Store, const TFunction< bool(T &InOutValue)> &UpdateFn) const
Definition IAnalyticsPropertyStore.h:166
IAnalyticsPropertyStore::EStatusCode Set(IAnalyticsPropertyStore *Store, const T &Value) const
Definition IAnalyticsPropertyStore.h:163
IAnalyticsPropertyStore::EStatusCode Get(IAnalyticsPropertyStore *Store, T &OutValue) const
Definition IAnalyticsPropertyStore.h:165
const FString Key
Definition IAnalyticsPropertyStore.h:168
IAnalyticsPropertyStore::EStatusCode Set(IAnalyticsPropertyStore *Store, const T &Value, const TFunction< bool(const T *, const T &)> &ConditionFn) const
Definition IAnalyticsPropertyStore.h:164
Definition AndroidPlatformMisc.h:14
Definition AnalyticsEventAttribute.h:48
Definition DateTime.h:76
Definition Timespan.h:76
static FTimespan MaxValue()
Definition Timespan.h:686