99#include " PubnubClient.generated.h"
1010
1111class UPubnubSubsystem ;
12+ class UPubnubCryptoBridge ;
1213class FPubnubFunctionThread ;
1314struct CCoreSubscriptionCallback ;
1415
15-
1616struct pubnub_ ;
1717typedef struct pubnub_ pubnub_t ;
1818enum pubnub_res;
1919
2020
21+ DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam (FPubnubOnClientDeinitialized, int , ClientID);
2122DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams (FPubnubOnSubscriptionStatusChanged, EPubnubSubscriptionStatus, Status, FPubnubSubscriptionStatusData, StatusData);
2223DECLARE_MULTICAST_DELEGATE_TwoParams (FPubnubOnSubscriptionStatusChangedNative, EPubnubSubscriptionStatus Status, const FPubnubSubscriptionStatusData& StatusData);
2324
@@ -39,16 +40,20 @@ class PUBNUBLIBRARY_API UPubnubClient : public UObject
3940
4041public:
4142
42- /* *Listener to react for subscription status changed */
43+ /* *Listener to react for subscription status changed*/
4344 UPROPERTY (BlueprintAssignable, Category = " Pubnub|Delegates" )
4445 FPubnubOnSubscriptionStatusChanged OnSubscriptionStatusChanged;
4546
4647 /* *Listener to react for subscription status changed , equivalent that accepts lambdas*/
4748 FPubnubOnSubscriptionStatusChangedNative OnSubscriptionStatusChangedNative;
49+
50+ /* *Delegate that is called when PubnubClient is deinitialized*/
51+ UPROPERTY (BlueprintAssignable, Category = " Pubnub|Delegates" )
52+ FPubnubOnClientDeinitialized OnClientDeinitialized;
4853
4954
50- UFUNCTION (BlueprintCallable, Category=" PubnubClient" )
51- int GetClientID () {return ClientID;};
55+ UFUNCTION (BlueprintPure, BlueprintCallable, Category=" PubnubClient" )
56+ int GetClientID () const {return ClientID;};
5257
5358 UFUNCTION (BlueprintCallable, Category=" PubnubClient" )
5459 void DestroyClient ();
@@ -133,8 +138,25 @@ class PUBNUBLIBRARY_API UPubnubClient : public UObject
133138 int ClientID = -1 ;
134139 FString DebugName = " " ;
135140 bool IsInitialized = false ;
141+ bool IsUserIDSet = false ;
136142
137- #pragma endregion
143+ #pragma endregion
144+
145+ #pragma region PUBNUB CRYPTO
146+
147+ // CryptoBridge class that holds provided CryptoModule and inserts it into C-Core system - it keeps all required references alive
148+ UPROPERTY ()
149+ TObjectPtr<UPubnubCryptoBridge> CryptoBridge;
150+
151+ #pragma endregion
152+
153+ #pragma region PUBNUB AUTH
154+
155+ // Auth token has to be kept alive for the lifetime of the sdk, so this is the container for it
156+ char * AuthTokenBuffer = nullptr ;
157+ size_t AuthTokenLength = 0 ;
158+
159+ #pragma endregion
138160
139161#pragma region PUBNUB CONFIG
140162
@@ -154,9 +176,7 @@ class PUBNUBLIBRARY_API UPubnubClient : public UObject
154176
155177#pragma endregion
156178
157- // TODO:: Move these functions to the logger
158- void PubnubError (FString ErrorMessage, EPubnubErrorType ErrorType = EPubnubErrorType::PET_Error);
159- void PubnubResponseError (pubnub_res PubnubResponse, FString ErrorMessage);
179+ #pragma region PUBNUB SUBSCRIPTION
160180
161181 // Storage for global subscriptions (not from Entities)
162182 TMap<FString, CCoreSubscriptionCallback*> ChannelSubscriptions;
@@ -167,6 +187,13 @@ class PUBNUBLIBRARY_API UPubnubClient : public UObject
167187
168188 void OnCCoreSubscriptionStatusReceived (int StatusEnum, const void * StatusData);
169189
190+ #pragma endregion
191+
192+ // TODO:: Move these functions to the logger
193+ void PubnubError (FString ErrorMessage, EPubnubErrorType ErrorType = EPubnubErrorType::PET_Error);
194+ void PubnubResponseError (pubnub_res PubnubResponse, FString ErrorMessage);
170195
171196 void InitPubnub_priv (const FPubnubConfig& Config);
197+ void UnsubscribeFromAll_priv (FPubnubOnSubscribeOperationResponseNative OnUnsubscribeFromAllResponse = nullptr );
172198};
199+
0 commit comments