Files
UnrealEngine/Engine/Source/Developer/LauncherServices/Public/ILauncherDeviceGroup.h
2025-05-18 13:04:45 +08:00

117 lines
2.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Misc/Guid.h"
class ILauncherDeviceGroup;
/** Type definition for shared pointers to instances of ILauncherDeviceGroup. */
typedef TSharedPtr<class ILauncherDeviceGroup> ILauncherDeviceGroupPtr;
/** Type definition for shared references to instances of ILauncherDeviceGroup. */
typedef TSharedRef<class ILauncherDeviceGroup> ILauncherDeviceGroupRef;
/**
* Delegate type for adding devices.
*
* The first parameter is the device group that invoked the delegate.
* The second parameter is the identifier of the device that was removed.
*/
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnLauncherDeviceGroupDeviceAdded, const ILauncherDeviceGroupRef&, const FString&)
/**
* Delegate type for removing devices.
*
* The first parameter is the device group that invoked the delegate.
* The second parameter is the identifier of the device that was removed.
*/
DECLARE_MULTICAST_DELEGATE_TwoParams(FOnLauncherDeviceGroupDeviceRemoved, const ILauncherDeviceGroupRef&, const FString&)
/**
* Interface for Launcher device groups.
*/
class ILauncherDeviceGroup
{
public:
/**
* Adds a device to the group.
*
* @param DeviceID The identifier of the device to add.
*/
virtual void AddDevice(const FString& DeviceID) = 0;
/**
* Get a list of identifiers for devices associated with this device group.
*
* @return The list of device identifiers.
*/
virtual const TArray<FString>& GetDeviceIDs() = 0;
/**
* Gets the unique identifier of the device group.
*
* @return The device group identifier.
*/
virtual FGuid GetId() const = 0;
/**
* Gets the human readable name of the device group.
*
* @return The name of the device group.
*/
virtual const FString& GetName() const = 0;
/**
* Get a list of devices associated with this device group.
*
* @return The number of devices the device group maintains.
*/
virtual int32 GetNumDevices() const = 0;
/**
* Removes a device from the group.
*
* @param DeviceID The identifier of the device to remove.
*/
virtual void RemoveDevice(const FString& DeviceID) = 0;
/**
* Removes all devices from the group.
*
*/
virtual void RemoveAllDevices() = 0;
/**
* Sets the name of the device group.
*
* @param NewName The new name.
*/
virtual void SetName(const FString& NewName) = 0;
public:
/**
* Returns a delegate that is invoked when device was added to this group.
*
* @return The delegate.
*/
virtual FOnLauncherDeviceGroupDeviceAdded& OnDeviceAdded() = 0;
/**
* Returns a delegate that is invoked when device was removed from this group.
*
* @return The delegate.
*/
virtual FOnLauncherDeviceGroupDeviceRemoved& OnDeviceRemoved() = 0;
public:
/** Virtual destructor. */
virtual ~ILauncherDeviceGroup() { }
};