Stream Chat Unreal SDK
Loading...
Searching...
No Matches
MessageStore.h
1// Copyright 2026 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Message.h"
7
8#include "MessageStore.generated.h"
9
10using FMessageRef = TSharedRef<FMessage>;
11using FMessages = TArray<FMessageRef>;
12
24USTRUCT(BlueprintType)
25struct STREAMCHAT_API FMessageStore
26{
27 GENERATED_BODY()
28
29
32 void Append(const FMessageStore&);
33 void Append(const TArray<FMessageDto>, UUserManager*);
34
44 bool AddMessage(const FMessage&);
45 bool AddMessage(const FMessageDto&, UUserManager*);
46
53 void AppendReplies(const FString& ParentId, const TArray<FMessageDto>&, UUserManager*);
54
55 bool IsEmpty() const;
56 // Must check if store is empty first or this will crash
57 const FMessage& First();
58 // Must check if store is empty first or this will crash
59 const FMessage& Last();
60
62 TSharedPtr<FMessage> Next(const FMessage&) const;
63
64 FMessages FilterRecent(const FTimespan& Since) const;
65
67 const FMessages& GetMessages() const;
68
70 const FMessages& GetReplies(const FString& ParentId) const;
71
72private:
73 void Append(const FMessages&);
75 bool AddReply(const FMessage&);
77 void ShowReplyInChannel(const FMessageRef&);
78 void IncrementReplyCount(const FString& ParentId);
79
80 FMessages Messages;
82 TMap<FString, FMessages> Threads;
83};
@ ParentId
The parent message ID (if the message is a reply)
#/components/schemas/Message Represents any chat message. Used in responses only
Definition MessageDto.h:25
Represents a Stream Chat message.
Definition Message.h:70
A store for a list of messages.
Definition MessageStore.h:26