/
GSDKConfiguration.h
132 lines (117 loc) · 4.53 KB
/
GSDKConfiguration.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Copyright (C) Microsoft Corporation. All rights reserved.
#pragma once
#include "CoreMinimal.h"
#include "GameServerConnectionInfo.h"
class FConfiguration
{
public:
virtual ~FConfiguration() = default;
virtual const FString& GetHeartbeatEndpoint() = 0;
virtual const FString& GetServerId() = 0;
virtual const FString& GetLogFolder() = 0;
virtual const FString& GetCertificateFolder() = 0;
virtual const FString& GetSharedContentFolder() = 0;
virtual const TMap<FString, FString>& GetGameCertificates() = 0;
virtual const FString& GetTitleId() = 0;
virtual const FString& GetBuildId() = 0;
virtual const FString& GetRegion() = 0;
virtual const TMap<FString, FString>& GetBuildMetadata() = 0;
virtual const TMap<FString, FString>& GetGamePorts() = 0;
virtual const FString& GetPublicIpV4Address() = 0;
virtual const FString& GetFullyQualifiedDomainName() = 0;
virtual const FGameServerConnectionInfo& GetGameServerConnectionInfo() = 0;
virtual bool ShouldLog() = 0;
virtual bool ShouldHeartbeat() = 0;
virtual int32 GetMinimumHeartbeatInterval() = 0;
virtual int32 GetMaximumAllowedUnexpectedOperationsCount() = 0;
protected:
static constexpr const TCHAR* HEARTBEAT_ENDPOINT_ENV_VAR = TEXT("HEARTBEAT_ENDPOINT");
static constexpr const TCHAR* SERVER_ID_ENV_VAR = TEXT("SESSION_HOST_ID");
static constexpr const TCHAR* LOG_FOLDER_ENV_VAR = TEXT("GSDK_LOG_FOLDER");
static constexpr const TCHAR* TITLE_ID_ENV_VAR = TEXT("PF_TITLE_ID");
static constexpr const TCHAR* BUILD_ID_ENV_VAR = TEXT("PF_BUILD_ID");
static constexpr const TCHAR* REGION_ENV_VAR = TEXT("PF_REGION");
static constexpr const TCHAR* SHARED_CONTENT_FOLDER_ENV_VAR = TEXT("SHARED_CONTENT_FOLDER");
};
class
#if (WITH_DEV_AUTOMATION_TESTS && WITH_EDITOR)
PLAYFABGSDK_API
#endif
FConfigurationBase : public FConfiguration
{
public:
FConfigurationBase();
virtual const FString& GetTitleId() override;
virtual const FString& GetBuildId() override;
virtual const FString& GetRegion() override;
virtual bool ShouldLog() override;
virtual bool ShouldHeartbeat() override;
virtual int32 GetMinimumHeartbeatInterval() override;
virtual int32 GetMaximumAllowedUnexpectedOperationsCount() override;
private:
// These are set in the base class
FString TitleId;
FString BuildId;
FString Region;
};
class FEnvironmentVariableConfiguration : public FConfigurationBase
{
public:
FEnvironmentVariableConfiguration();
virtual const FString& GetHeartbeatEndpoint() override;
virtual const FString& GetServerId() override;
virtual const FString& GetLogFolder() override;
virtual const FString& GetCertificateFolder() override;
virtual const FString& GetSharedContentFolder() override;
virtual const TMap<FString, FString>& GetGameCertificates() override;
virtual const TMap<FString, FString>& GetBuildMetadata() override;
virtual const TMap<FString, FString>& GetGamePorts() override;
virtual const FString& GetPublicIpV4Address() override;
virtual const FString& GetFullyQualifiedDomainName() override;
virtual const FGameServerConnectionInfo& GetGameServerConnectionInfo() override;
private:
FString HeartbeatEndpoint;
FString ServerId;
FString LogFolder;
FString CertFolder;
FString SharedContentFolder;
TMap<FString, FString> GameCerts;
TMap<FString, FString> Metadata;
TMap<FString, FString> Ports;
FString Ipv4Address;
FString DomainName;
FGameServerConnectionInfo ConnectionInfo;
};
class
#if (WITH_DEV_AUTOMATION_TESTS && WITH_EDITOR)
PLAYFABGSDK_API
#endif
FJsonFileConfiguration : public FConfigurationBase
{
public:
FJsonFileConfiguration(const FString& FileName);
virtual const FString& GetHeartbeatEndpoint() override;
virtual const FString& GetServerId() override;
virtual const FString& GetLogFolder() override;
virtual const FString& GetCertificateFolder() override;
virtual const FString& GetSharedContentFolder() override;
virtual const TMap<FString, FString>& GetGameCertificates() override;
virtual const TMap<FString, FString>& GetBuildMetadata() override;
virtual const TMap<FString, FString>& GetGamePorts() override;
virtual const FString& GetPublicIpV4Address() override;
virtual const FString& GetFullyQualifiedDomainName() override;
virtual const FGameServerConnectionInfo& GetGameServerConnectionInfo() override;
protected:
FJsonFileConfiguration() = default;
FString HeartbeatEndpoint;
FString ServerId;
FString LogFolder;
FString CertFolder;
FString SharedContentFolder;
TMap<FString, FString> GameCerts;
TMap<FString, FString> Metadata;
TMap<FString, FString> Ports;
FString Ipv4Address;
FString DomainName;
FGameServerConnectionInfo ConnectionInfo;
};