UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StropheStanza.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "XmppStanza.h"
6
7#if WITH_XMPP_STROPHE
8
10class FStropheContext;
11class FXmppUserJid;
12
13typedef struct _xmpp_ctx_t xmpp_ctx_t;
14typedef struct _xmpp_conn_t xmpp_conn_t;
15typedef struct _xmpp_stanza_t xmpp_stanza_t;
16
18 : public IXmppStanza
19{
20 // For TArray<FStropheStanza> Emplace clone from xmp_stanza_t*
21 friend class TArray<FStropheStanza>;
22 // For Clone constructor access
23 friend class FStropheError;
24 // For GetStanzaPtr access
25 friend class FStropheConnection;
26 friend class FStropheWebsocketConnection;
27
28 // For cloning stanzas from our socket
29 friend int StropheStanzaEventHandler(xmpp_conn_t* const Connection, xmpp_stanza_t* const IncomingStanza, void* const UserData);
30 friend int StropheWebsocketStanzaEventHandler(xmpp_conn_t* const Connection, xmpp_stanza_t* const IncomingStanza, void* const UserData);
31
32public:
33 explicit FStropheStanza(const FXmppConnectionStrophe& Context, const FString& StanzaName = FString());
36 virtual ~FStropheStanza();
37 FStropheStanza& operator=(const FStropheStanza& Other);
39
40 FStropheStanza Clone();
41
42 void AddChild(const FStropheStanza& Child);
43 virtual TUniquePtr<IXmppStanza> GetChild(const FString& ChildName) const override;
46 TOptional<FStropheStanza> GetChildByNameAndNamespace(const FString& ChildName, const FString& Namespace);
47 TOptional<const FStropheStanza> GetChildByNameAndNamespace(const FString& ChildName, const FString& Namespace) const;
48 virtual bool HasChild(const FString& ChildName) const override;
49 bool HasChildByNameAndNamespace(const FString& ChildName, const FString& Namespace) const;
50
51 TArray<FStropheStanza> GetChildren();
52 const TArray<FStropheStanza> GetChildren() const;
53
54 void SetNamespace(const FString& Namespace);
55 FString GetNamespace() const;
56
57 void SetAttribute(const FString& Key, const FString& Value);
58 virtual FString GetAttribute(const FString& Key) const override;
59 virtual bool HasAttribute(const FString& Key) const override;
60
61 void SetName(const FString& Name);
62 virtual FString GetName() const override;
63
64 void SetText(const FString& Text);
65 virtual FString GetText() const override;
66
67 void SetType(const FString& Type);
68 virtual FString GetType() const override;
69
70 void SetId(const FString& Id);
71 virtual FString GetId() const override;
72
73 void SetTo(const FXmppUserJid& To);
74 void SetTo(const FString& To);
75 virtual FXmppUserJid GetTo() const override;
76
77 void SetFrom(const FXmppUserJid& From);
78 void SetFrom(const FString& From);
79 virtual FXmppUserJid GetFrom() const override;
80
81 // Helpers for Message stanzas */
82
84 bool AddBodyWithText(const FString& Text);
86 virtual TOptional<FString> GetBodyText() const override;
87
88protected:
90 xmpp_stanza_t* GetStanzaPtr() const { return XmppStanzaPtr; }
91
94
97
98protected:
101};
102
103#endif
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition XmppConnection.h:99
Definition XmppStanza.h:14
Definition Array.h:670
Definition UniquePtr.h:107
ECollisionShapeType GetType(const Chaos::FImplicitObject &InGeometry)
Definition ChaosInterfaceWrapperCore.h:105
IMAGECORE_API const TCHAR * GetName(Type Format)
Definition ImageCore.cpp:1378
Definition Optional.h:131