// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved. #pragma once #include "OnlineSessionInterface.h" #include "EndSessionCallbackProxy.generated.h" UCLASS(MinimalAPI) class UEndSessionCallbackProxy : public UOnlineBlueprintCallProxyBase { GENERATED_UCLASS_BODY() // Called when there is a successful destroy UPROPERTY(BlueprintAssignable) FEmptyOnlineDelegate OnSuccess; // Called when there is an unsuccessful destroy UPROPERTY(BlueprintAssignable) FEmptyOnlineDelegate OnFailure; // Ends the current session UFUNCTION(BlueprintCallable, meta=(BlueprintInternalUseOnly = "true", WorldContext="WorldContextObject"), Category = "Online|AdvancedSessions") static UEndSessionCallbackProxy* EndSession(UObject* WorldContextObject, class APlayerController* PlayerController); // UOnlineBlueprintCallProxyBase interface virtual void Activate() override; // End of UOnlineBlueprintCallProxyBase interface private: // Internal callback when the operation completes, calls out to the public success/failure callbacks void OnCompleted(FName SessionName, bool bWasSuccessful); private: // The player controller triggering things TWeakObjectPtr PlayerControllerWeakPtr; // The delegate executed by the online subsystem FOnEndSessionCompleteDelegate Delegate; // Handle to the registered OnDestroySessionComplete delegate FDelegateHandle DelegateHandle; // The world context object in which this call is taking place UObject* WorldContextObject; };