UnrealVoxta 0.1.1
 
Loading...
Searching...
No Matches
CallbackManager.h
Go to the documentation of this file.
1/*
2 * MIT License
3 *
4 * Copyright (c) 2020-2022 Frozen Storm Interactive, Yoann Potinet
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12
13 * The above copyright notice and this permission notice shall be included in all
14 * copies or substantial portions of the Software.
15
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 * SOFTWARE.
23 */
24
25#pragma once
26
27#include "CoreMinimal.h"
28#include "IHubConnection.h"
29
36{
37public:
40
46 TTuple<FName, IHubConnection::FOnMethodCompletion&> RegisterCallback();
47
57 bool InvokeCallback(FName InCallbackId, const FSignalRValue& InArguments, bool InRemoveCallback);
58
66 bool RemoveCallback(FName InCallbackId);
67
73 void Clear(const FString& ErrorMessage);
74
75private:
76 FName GenerateCallbackId();
77
78 TMap<FName, IHubConnection::FOnMethodCompletion> Callbacks;
79 FCriticalSection CallbacksLock;
80
81 FThreadSafeCounter CurrentId;
82};
void Clear(const FString &ErrorMessage)
Removes all callbacks and invokes them with the specified error message.
Definition CallbackManager.cpp:81
bool InvokeCallback(FName InCallbackId, const FSignalRValue &InArguments, bool InRemoveCallback)
Invokes a callback with the specified arguments.
Definition CallbackManager.cpp:47
TTuple< FName, IHubConnection::FOnMethodCompletion & > RegisterCallback()
Registers a new callback and returns its ID along with a reference to the callback.
Definition CallbackManager.cpp:37
bool RemoveCallback(FName InCallbackId)
Removes a callback with the specified ID.
Definition CallbackManager.cpp:71
~FCallbackManager()
Definition CallbackManager.cpp:32
FCallbackManager()
Definition CallbackManager.cpp:28
Represents a value that can be sent to or received from a SignalR hub.
Definition SignalRValue.h:34