UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnalyticsSessionSummaryManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "Containers/Array.h"
7#include "Containers/Map.h"
9#include "CoreMinimal.h"
10#include "HAL/Platform.h"
11#include "HAL/PlatformCrt.h"
13#include "Misc/Timespan.h"
15
19template <typename T> class TAnalyticsProperty;
20
32
37
51{
52public:
55
58
59public:
70 ANALYTICSET_API FAnalyticsSessionSummaryManager(const FString& ProcessName, const FString& ProcessGroupId, const FString& UserId, const FString& AppId, const FString& AppVersion, const FString& SessionId, const FString& SavedDir = TEXT(""));
71
79 ANALYTICSET_API FAnalyticsSessionSummaryManager(const FString& ProcessName, const FString& ProcessGroupId, uint32 PrincipalProcessId, const FString& SavedDir = TEXT(""));
80
85
89 ANALYTICSET_API void Tick();
90
98
107
112 ANALYTICSET_API void SetUserId(const FString& UserId);
113
121 ANALYTICSET_API void Shutdown(bool bDiscard = false);
122
128 static ANALYTICSET_API void CleanupExpiredFiles(const FString& SavedDir = TEXT(""));
129
135
136private:
138 struct FPropertyFileInfo
139 {
141 uint32 ProcessId = 0;
142
144 FString ProcessName;
145
147 FString Pathname;
148 };
149
151 struct FProcessGroup
152 {
154 uint32 PrincipalProcessId = 0;
155
157 FString PrincipalProcessName;
158
160 TArray<FPropertyFileInfo> PropertyFiles;
161 };
162
163private:
165 ANALYTICSET_API FAnalyticsSessionSummaryManager(const FString& ProcessName, const FString& ProcessGroupId, uint32 InCurrentProcessId, uint32 PrincipalProcessId, const FString& UserId, const FString& AppId, const FString& AppVersion, const FString& SessionId, const FString& SessionRootDir);
166
168 ANALYTICSET_API TMap<FString, FProcessGroup> GetSessionFiles() const;
169
171 ANALYTICSET_API void ProcessSummary(const FString& ProcessGroupId, const FProcessGroup& ProcessGroup);
172
174 ANALYTICSET_API bool AggregateSummaries(const FString& ProcessGroupId, const FProcessGroup& ProcessGroup, TArray<FAnalyticsEventAttribute>& OutSummaryProperties, TArray<FAnalyticsEventAttribute>& OutInternalProperties);
175
177 ANALYTICSET_API bool CleanupFiles(const TArray<FPropertyFileInfo>& PropertyFiles, bool bOnSuccess);
178
180 bool IsOrphanGroupsOwner() const { return bOrphanGroupOwner; }
181
183 ANALYTICSET_API bool IsPrincipalProcess() const;
184
186 ANALYTICSET_API void PruneTrackedPropertyStores();
187
188private:
191 FString ProcessName;
192 FString ProcessGroupId;
193 FString UserId;
194 FString AppId;
195 FString AppVersion;
196 FString SessionId;
197 FString SessionRootPath;
198 uint32 CurrentProcessId;
199 uint32 PrincipalProcessId;
200 uint32 StoreCounter;
201 double NextOrphanSessionCheckTimeSecs;
202 bool bOrphanGroupOwner = false;
203 bool bIsPrincipal = false;
204};
ANALYTICSET_API const TCHAR * LexToString(EAnalyticsSessionShutdownType ShutdownTypeCode)
Definition AnalyticsSessionSummaryManager.cpp:144
EAnalyticsSessionShutdownType
Definition AnalyticsSessionSummaryManager.h:24
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
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 AnalyticsSessionSummaryManager.h:51
ANALYTICSET_API ~FAnalyticsSessionSummaryManager()
Definition AnalyticsSessionSummaryManager.cpp:213
static ANALYTICSET_API void CleanupExpiredFiles(const FString &SavedDir=TEXT(""))
Definition AnalyticsSessionSummaryManager.cpp:621
static ANALYTICSET_API const TAnalyticsProperty< int32 > ShutdownTypeCodeProperty
Definition AnalyticsSessionSummaryManager.h:54
ANALYTICSET_API TSharedPtr< IAnalyticsPropertyStore > MakeStore(uint32 InitialCapacity)
Definition AnalyticsSessionSummaryManager.cpp:221
static ANALYTICSET_API const TAnalyticsProperty< bool > IsUserLoggingOutProperty
Definition AnalyticsSessionSummaryManager.h:57
ANALYTICSET_API void Tick()
Definition AnalyticsSessionSummaryManager.cpp:303
ANALYTICSET_API void SetUserId(const FString &UserId)
Definition AnalyticsSessionSummaryManager.cpp:257
static FTimespan GetSessionExpirationAge()
Definition AnalyticsSessionSummaryManager.h:134
ANALYTICSET_API void SetSender(TSharedPtr< IAnalyticsSessionSummarySender > Sender)
Definition AnalyticsSessionSummaryManager.cpp:252
Definition IAnalyticsPropertyStore.h:14
Definition IAnalyticsSessionSummarySender.h:12
Definition IAnalyticsPropertyStore.h:159
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition AnalyticsEventAttribute.h:48
Definition Timespan.h:76
static FTimespan FromDays(double Days)
Definition Timespan.h:613