Files
UnrealEngine/Engine/Plugins/Runtime/nDisplay/Source/DisplayCluster/Public/Cluster/DisplayClusterClusterEvent.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

145 lines
3.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "DisplayClusterClusterEvent.generated.h"
constexpr const auto DisplayClusterResetSyncType = TEXT("nDCReset");
class FArchive;
//////////////////////////////////////////////////////////////////////////////////////////////
// Common cluster event data
//////////////////////////////////////////////////////////////////////////////////////////////
USTRUCT(BlueprintType)
struct DISPLAYCLUSTER_API FDisplayClusterClusterEventBase
{
GENERATED_BODY()
public:
FDisplayClusterClusterEventBase()
: bIsSystemEvent(false)
, bShouldDiscardOnRepeat(true)
{ }
virtual ~FDisplayClusterClusterEventBase() = default;
public:
/** Is nDisplay internal event(should never be true for end users) */
UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (DisplayName = "Is Sytem Event. 'True' is reserved for nDisplay internals."), Category = "NDisplay")
bool bIsSystemEvent = false;
/** Should older events with the same Name / Type / Category(for JSON) or ID(for binary) be discarded if a new one received */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NDisplay")
bool bShouldDiscardOnRepeat = true;
public:
/** Serialization */
virtual void Serialize(FArchive& Ar);
};
//////////////////////////////////////////////////////////////////////////////////////////////
// Cluster event JSON
//////////////////////////////////////////////////////////////////////////////////////////////
USTRUCT(BlueprintType)
struct DISPLAYCLUSTER_API FDisplayClusterClusterEventJson
: public FDisplayClusterClusterEventBase
{
GENERATED_BODY()
public:
/** Event name(used for discarding outdated events) */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NDisplay")
FString Name;
/** Event type(used for discarding outdated events) */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NDisplay")
FString Type;
/** Event category(used for discarding outdated events) */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NDisplay")
FString Category;
public:
/** Event parameters */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NDisplay")
TMap<FString, FString> Parameters;
public:
/** Serialization */
virtual void Serialize(FArchive& Ar) override;
/** Serialization */
friend FArchive& operator<<(FArchive& Ar, FDisplayClusterClusterEventJson& Instance)
{
Instance.Serialize(Ar);
return Ar;
}
/** String based representation */
FString ToString(bool bWithParams = false) const;
public:
UE_DEPRECATED(5.6, "This function has been deprecated and will be removed soon. Please use 'Serialize' for JSON event serialization.")
FString SerializeToString() const
{
return FString();
}
UE_DEPRECATED(5.6, "This function has been deprecated and will be removed soon. Please use 'Serialize' for JSON event deserialization.")
bool DeserializeFromString(const FString& Arch)
{
return false;
}
};
//////////////////////////////////////////////////////////////////////////////////////////////
// Cluster event BINARY
//////////////////////////////////////////////////////////////////////////////////////////////
USTRUCT(BlueprintType)
struct DISPLAYCLUSTER_API FDisplayClusterClusterEventBinary
: public FDisplayClusterClusterEventBase
{
GENERATED_BODY()
public:
/** Event ID(used for discarding outdated events) */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NDisplay")
int32 EventId = -1;
/** Binary event data */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NDisplay")
TArray<uint8> EventData;
public:
/** Raw serialization */
void SerializeToByteArray(TArray<uint8>& Arch) const;
/** Raw deserialization */
bool DeserializeFromByteArray(const TArray<uint8>& Arch);
/** Serialization */
virtual void Serialize(FArchive& Ar) override;
/** Serialization */
friend FArchive& operator<<(FArchive& Ar, FDisplayClusterClusterEventBinary& Instance)
{
Instance.Serialize(Ar);
return Ar;
}
};