Files
UnrealEngineUWP/Engine/Source/Developer/TargetPlatform/Public/Interfaces/TargetDeviceId.h
ryan durand 471d972e62 Updating copyright for Engine Developer.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869240 via CL 10869516 via CL 10869902
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870584 by ryan durand in Main branch]
2019-12-26 15:32:37 -05:00

141 lines
3.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
/**
* Implements a target devices identifier.
*/
class FTargetDeviceId
{
public:
/** Default constructor. */
FTargetDeviceId() { }
/**
* Creates and initializes a new target device identifier.
*
* @param InPlatformName The name of the device's target platform.
* @param InDeviceName The unique device name, i.e. IP address or computer name.
*/
FTargetDeviceId( const FString& InPlatformName, const FString& InDeviceName )
: PlatformName(InPlatformName)
, DeviceName(InDeviceName)
{ }
public:
/**
* Compares this device identifier with the given device identifier for equality.
*
* @param Other The device identifier to compare with.
* @return true if the identifiers are equal, false otherwise.
*/
bool operator==( const FTargetDeviceId& Other ) const
{
return ((PlatformName == Other.PlatformName) && (DeviceName == Other.DeviceName));
}
/**
* Compares this device identifier with the given device identifier for inequality.
*
* @param Other The device identifier to compare with.
* @return true if the identifiers are not equal, false otherwise.
*/
bool operator!=( const FTargetDeviceId& Other ) const
{
return ((PlatformName != Other.PlatformName) || (DeviceName != Other.DeviceName));
}
/**
* Serializes the given device identifier from or into the specified archive.
*
* @param Ar The archive to serialize from or into.
* @param Uri The device identifier to serialize.
* @return The archive.
*/
friend FArchive& operator<<( FArchive& Ar, FTargetDeviceId& Uri )
{
return Ar << Uri.PlatformName << Uri.DeviceName;
}
public:
/**
* Gets the device identifier.
*
* @return Device identifier.
*/
const FString& GetDeviceName() const
{
return DeviceName;
}
/**
* Gets the platform name.
*
* @return Platform name.
*/
const FString& GetPlatformName() const
{
return PlatformName;
}
/**
* Checks whether this target device identifier is valid.
*
* @return true if the identifier is valid, false otherwise.
*/
bool IsValid() const
{
return (!PlatformName.IsEmpty() && !DeviceName.IsEmpty());
}
/**
* Gets the string representation for this device identifier.
*
* @return String representation.
*/
FString ToString() const
{
return PlatformName + TEXT("@") + DeviceName;
}
public:
/**
* Gets the hash for specified target device identifier.
*
* @param Uri The device identifier to get the hash for.
* @return Hash value.
*/
friend uint32 GetTypeHash( const FTargetDeviceId& Uri )
{
return GetTypeHash(Uri.ToString());
}
public:
/**
* Converts a string to a target device identifier.
*
* @param IdString The string to convert.
* @param OutId Will contain the parsed device identifier.
* @return true if the string was converted successfully, false otherwise.
*/
static bool Parse( const FString& IdString, FTargetDeviceId& OutId )
{
return IdString.Split(TEXT("@"), &OutId.PlatformName, &OutId.DeviceName, ESearchCase::CaseSensitive);
}
private:
/** Holds the name of the device's target platform. */
FString PlatformName;
/** Holds the name of the target device. */
FString DeviceName;
};