UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
XmppConnection.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreTypes.h"
9
10class IXmppChat;
11class IXmppMessages;
13class IXmppPresence;
14class IXmppPubSub;
15class IXmppStanza;
16
19{
28
29 inline const TCHAR* ToString(EXmppLoginStatus::Type EnumVal)
30 {
31 switch (EnumVal)
32 {
33 case NotStarted:
34 return TEXT("NotStarted");
35 case ProcessingLogin:
36 return TEXT("ProcessingLogin");
38 return TEXT("ProcessingLogout");
39 case LoggedIn:
40 return TEXT("LoggedIn");
41 case LoggedOut:
42 return TEXT("LoggedOut");
43 };
44 return TEXT("Unknown");
45 }
46};
47
94
99{
100public:
101
102 explicit FXmppUserJid(
103 FString InId = FString(),
104 FString InDomain = FString(),
105 FString InResource = FString()
106 )
107 : Id(MoveTemp(InId))
110 {
111 }
112
120 static XMPP_API FXmppUserJid FromFullJid(const FString& JidString);
121
123 FString Id;
125 FString Domain;
127 FString Resource;
128
139 static XMPP_API bool ParseResource(const FString& InResource, FString& OutAppId, FString& OutPlatform, FString& OutPlatformUserId);
140
141 static XMPP_API FString CreateResource(const FString& AppId, const FString& Platform, const FString& PlatformUserId);
142
152 bool ParseResource(FString& OutAppId, FString& OutPlatform, FString& OutPlatformUserId) const
153 {
155 }
156
161 static XMPP_API FString ParseMucUserResource(const FString& InResource);
162
163 bool operator==(const FXmppUserJid& Other) const
164 {
165 return
166 Other.Id == Id &&
167 Other.Domain == Domain &&
168 Other.Resource == Resource;
169 }
170
171 bool operator!=(const FXmppUserJid& Other) const
172 {
173 return !operator==(Other);
174 }
175
177 FString GetFullPath() const
178 {
179 FString Result(Id);
180 if (!Domain.IsEmpty())
181 {
182 Result += TEXT("@") + Domain;
183
184 if (!Resource.IsEmpty())
185 {
186 Result += TEXT("/") + Resource;
187 }
188 }
189
190 return Result;
191 }
192
194 FString GetBareId() const
195 {
196 return FString::Printf(TEXT("%s@%s"), *Id, *Domain);
197 }
198
200 bool IsValid() const
201 {
202 return !Id.IsEmpty() && !Domain.IsEmpty();
203 }
204
205 XMPP_API FString ToDebugString() const;
206};
207
213
218 : public TSharedFromThis<IXmppConnection>
219{
220public:
221
223 virtual ~IXmppConnection() {}
224
230 virtual void SetServer(const FXmppServer& Server) = 0;
231
237 virtual const FXmppServer& GetServer() const = 0;
238
246 virtual void Login(const FString& UserId, const FString& Auth) = 0;
247
253 virtual void Logout() = 0;
254
261
268 virtual const FXmppUserJid& GetUserJid() const = 0;
269
277 DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnXmppLoginComplete, const FXmppUserJid& /*UserJid*/, bool /*bWasSuccess*/, const FString& /*Error*/);
278
286 DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnXmppLogoutComplete, const FXmppUserJid& /*UserJid*/, bool /*bWasSuccess*/, const FString& /*Error*/);
287
295
297 using FOnXmppLogingChanged UE_DEPRECATED(4.23, "Please update usages of 'FOnXmppLogingChanged' to 'FOnXmppLoginChanged'") = FOnXmppLoginChanged;
304
311
322
326 virtual IXmppPubSubPtr PubSub() = 0;
333
335 virtual void DumpState() const = 0;
336};
337
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#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
return true
Definition ExternalRpcRegistry.cpp:601
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
TSharedPtr< IXmppMultiUserChat, ESPMode::ThreadSafe > IXmppMultiUserChatPtr
Definition XmppConnection.h:211
TSharedPtr< IXmppPubSub, ESPMode::ThreadSafe > IXmppPubSubPtr
Definition XmppConnection.h:209
TSharedPtr< IXmppChat, ESPMode::ThreadSafe > IXmppChatPtr
Definition XmppConnection.h:212
TSharedPtr< IXmppMessages, ESPMode::ThreadSafe > IXmppMessagesPtr
Definition XmppConnection.h:210
TSharedPtr< IXmppPresence, ESPMode::ThreadSafe > IXmppPresencePtr
Definition XmppConnection.h:208
Definition XmppConnection.h:52
float PingTimeout
Definition XmppConnection.h:86
int32 MaxPingRetries
Definition XmppConnection.h:88
bool bResetPingTimeoutOnReceiveStanza
Definition XmppConnection.h:92
bool bUsePlainTextAuth
Definition XmppConnection.h:82
FString PlatformUserId
Definition XmppConnection.h:70
FString Domain
Definition XmppConnection.h:72
FString ClientResource
Definition XmppConnection.h:74
int32 ServerPort
Definition XmppConnection.h:68
FXmppServer()
Definition XmppConnection.h:54
bool bPrivateChatFriendsOnly
Definition XmppConnection.h:90
FString AppId
Definition XmppConnection.h:76
float PingInterval
Definition XmppConnection.h:84
bool bUseSSL
Definition XmppConnection.h:80
FString ServerAddr
Definition XmppConnection.h:66
FString Platform
Definition XmppConnection.h:78
Definition XmppConnection.h:99
bool operator==(const FXmppUserJid &Other) const
Definition XmppConnection.h:163
bool IsValid() const
Definition XmppConnection.h:200
XMPP_API FString ToDebugString() const
Definition XmppConnection.cpp:119
bool operator!=(const FXmppUserJid &Other) const
Definition XmppConnection.h:171
FString Resource
Definition XmppConnection.h:127
static XMPP_API FString CreateResource(const FString &AppId, const FString &Platform, const FString &PlatformUserId)
Definition XmppConnection.cpp:88
FString GetFullPath() const
Definition XmppConnection.h:177
static XMPP_API bool ParseResource(const FString &InResource, FString &OutAppId, FString &OutPlatform, FString &OutPlatformUserId)
Definition XmppConnection.cpp:45
static XMPP_API FXmppUserJid FromFullJid(const FString &JidString)
Definition XmppConnection.cpp:18
FString Id
Definition XmppConnection.h:123
static XMPP_API FString ParseMucUserResource(const FString &InResource)
Definition XmppConnection.cpp:94
bool ParseResource(FString &OutAppId, FString &OutPlatform, FString &OutPlatformUserId) const
Definition XmppConnection.h:152
FString Domain
Definition XmppConnection.h:125
FXmppUserJid(FString InId=FString(), FString InDomain=FString(), FString InResource=FString())
Definition XmppConnection.h:102
FString GetBareId() const
Definition XmppConnection.h:194
Definition XmppChat.h:33
Definition XmppConnection.h:219
virtual void Logout()=0
virtual void SetServer(const FXmppServer &Server)=0
virtual IXmppPresencePtr Presence()=0
virtual IXmppMultiUserChatPtr MultiUserChat()=0
FOnXmppLoginChanged FOnXmppLoginChanged
Definition XmppConnection.h:297
virtual FOnXmppLogoutComplete & OnLogoutComplete()=0
DECLARE_MULTICAST_DELEGATE_OneParam(FOnXmppStanzaReceived, const IXmppStanza &)
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnXmppLoginChanged, const FXmppUserJid &, EXmppLoginStatus::Type)
virtual IXmppPubSubPtr PubSub()=0
virtual FOnXmppLoginComplete & OnLoginComplete()=0
virtual IXmppChatPtr PrivateChat()=0
virtual FOnXmppStanzaSent & OnStanzaSent()=0
virtual FOnXmppLoginChanged & OnLoginChanged()=0
virtual EXmppLoginStatus::Type GetLoginStatus() const =0
virtual IXmppMessagesPtr Messages()=0
DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnXmppLogoutComplete, const FXmppUserJid &, bool, const FString &)
virtual void Login(const FString &UserId, const FString &Auth)=0
DECLARE_MULTICAST_DELEGATE_ThreeParams(FOnXmppLoginComplete, const FXmppUserJid &, bool, const FString &)
virtual ~IXmppConnection()
Definition XmppConnection.h:223
DECLARE_MULTICAST_DELEGATE_OneParam(FOnXmppStanzaSent, const IXmppStanza &)
virtual const FXmppServer & GetServer() const =0
virtual const FXmppUserJid & GetUserJid() const =0
virtual FOnXmppStanzaReceived & OnStanzaReceived()=0
virtual void DumpState() const =0
Definition XmppMessages.h:34
Definition XmppMultiUserChat.h:294
Definition XmppPresence.h:122
Definition XmppPubSub.h:79
Definition XmppStanza.h:14
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition XmppConnection.h:19
Type
Definition XmppConnection.h:21
@ LoggedIn
Definition XmppConnection.h:25
@ ProcessingLogin
Definition XmppConnection.h:23
@ ProcessingLogout
Definition XmppConnection.h:24
@ LoggedOut
Definition XmppConnection.h:26
@ NotStarted
Definition XmppConnection.h:22
@ false
Definition radaudio_common.h:23