UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
XmppConnectionStrophe.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 "XmppConnection.h"
10
11#include "Containers/Ticker.h"
12
13#if WITH_XMPP_STROPHE
14
21
22class FStropheContext;
23class FStropheError;
24
26 : public IXmppConnection
27 , public FTSTickerObjectBase
28{
29 friend FXmppStropheThread;
30
31public:
32 // FXmppConnectionStrophe
33 explicit FXmppConnectionStrophe();
37 FXmppConnectionStrophe& operator=(const FXmppConnectionStrophe& Other) = delete;
39
40 // Game Thread methods
41
42 // IXmppConnection
43 virtual void SetServer(const FXmppServer& NewServerConfiguration) override;
44 virtual const FXmppServer& GetServer() const override;
45
46 virtual void Login(const FString& UserId, const FString& Auth) override;
47 virtual void Logout() override;
48
49 virtual EXmppLoginStatus::Type GetLoginStatus() const override;
50
51 virtual const FXmppUserJid& GetUserJid() const override;
52
53 virtual FOnXmppLoginComplete& OnLoginComplete() override { return OnXmppLoginCompleteDelegate; }
54 virtual FOnXmppLoginChanged& OnLoginChanged() override { return OnXmppLoginChangedDelegate; }
55 virtual FOnXmppLogoutComplete& OnLogoutComplete() override { return OnXmppLogoutCompleteDelegate; }
56 virtual FOnXmppStanzaSent& OnStanzaSent() override { return OnXmppStanzaSentDelegate; }
57 virtual FOnXmppStanzaReceived& OnStanzaReceived() override { return OnXmppStanzaReceivedDelegate; }
58
59 virtual IXmppMessagesPtr Messages() override;
60 virtual IXmppMultiUserChatPtr MultiUserChat() override;
61 virtual IXmppPresencePtr Presence() override;
62 virtual IXmppChatPtr PrivateChat() override;
63 virtual IXmppPubSubPtr PubSub() override;
64
65 virtual void DumpState() const override;
66
67 // FTSTickerObjectBase
68 virtual bool Tick(float DeltaTime) override;
69
71
72 void StartXmppThread(const FXmppUserJid& ConnectionUser, const FString& ConnectionAuth);
73 void StopXmppThread();
74
75 // XMPP Thread methods
76
82
84 const FStropheContext& GetContext() const { return StropheContext; }
85
87 const FString& GetMucDomain() const { return MucDomain; }
88
89private:
91 void ReconnectLogin();
92
93protected:
96
99
102
105
108
111
113 FXmppUserJid UserJid;
114
116 FString MucDomain;
117
120
122 FOnXmppLoginComplete OnXmppLoginCompleteDelegate;
123 FOnXmppLoginChanged OnXmppLoginChangedDelegate;
124 FOnXmppLogoutComplete OnXmppLogoutCompleteDelegate;
125
127 FOnXmppStanzaReceived OnXmppStanzaReceivedDelegate;
128 FOnXmppStanzaSent OnXmppStanzaSentDelegate;
129
137};
138
139#endif
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition Ticker.h:137
Definition ThreadSafeBool.h:17
Definition XmppConnection.h:52
Definition XmppConnection.h:99
Definition XmppConnection.h:219
Definition Atomic.h:538
Definition Queue.h:48
Definition SharedPointer.h:692
Definition UniquePtr.h:107
Type
Definition XmppConnection.h:21