Stream Chat Unreal SDK
Loading...
Searching...
No Matches
UserManager.h
1// Copyright 2022 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "OwnUser.h"
7#include "OwnUserDto.h"
8#include "Subsystems/EngineSubsystem.h"
9#include "User/User.h"
10#include "User/UserRef.h"
11
12#include "UserManager.generated.h"
13
14struct FUserObjectDto;
15struct FOwnUserDto;
16
17UCLASS()
18class STREAMCHAT_API UUserManager final : public UEngineSubsystem
19{
20 GENERATED_BODY()
21
22public:
23 virtual void Initialize(FSubsystemCollectionBase& Collection) override;
24 static UUserManager* Get();
25
26 const FUser& GetUser(const FUserRef&);
27 bool HasUser(const FUserRef&) const;
28 FUserRef UpsertUser(const FUser&);
29 FUserRef UpsertUser(const FUserDto&);
30 FUserRef UpsertUser(const FUserObjectDto&);
31 FUserRef UpsertUser(const FString& Id);
32 TArray<FUserRef> UpsertUsers(const TArray<FUser>&);
33 TArray<FUserRef> UpsertUsers(const TArray<FUserObjectDto>&);
34 FUserUpdatedMultiDelegate& OnUserUpdated(const FUserRef&);
35
36 const FOwnUser& SetCurrentUser(const FOwnUserDto& Dto);
37 void ResetCurrentUser();
38 bool HasCurrentUser() const;
39 UFUNCTION(BlueprintPure, Category = "Stream|Users")
40 const FOwnUser& GetCurrentUser() const;
41
42private:
43 TOptional<FOwnUser> CurrentUser;
44 TMap<FString, FUser> Users;
45 TMap<FString, FUserUpdatedMultiDelegate> UserUpdatedDelegates;
46};
@ Id
Message ID.
#/components/schemas/OwnUser
Definition: OwnUserDto.h:17
The currently connected Stream Chat user.
Definition: OwnUser.h:18
Common fields for users.
Definition: UserDto.h:16
A Stream Chat user.
Definition: User.h:20
#/components/schemas/UserObject Used in both requests and responses
Definition: UserObjectDto.h:17
A reference to a unique User.
Definition: UserRef.h:23