Skip to content
Snippets Groups Projects
Commit 5c14e6f5 authored by David Gilbert's avatar David Gilbert :bug:
Browse files

Merge branch 'fix/cluster-event-wrapper' into 'dev/5.3'

Fix/cluster event wrapper

See merge request !1
parents dcde2f70 4c763cbf
No related branches found
No related tags found
2 merge requests!2pull changes forward,!1Fix/cluster event wrapper
Pipeline #427976 passed
...@@ -24,9 +24,10 @@ public: ...@@ -24,9 +24,10 @@ public:
void Attach(ObjectType* NewObject) void Attach(ObjectType* NewObject)
{ {
checkf(Object == nullptr, TEXT("The event is already attached.")); checkf(Object == nullptr, TEXT("The event is already attached."));
Object = NewObject; Object = NewObject;
ObjectId = Object->GetUniqueID(); ObjectName = Object->GetFullName();
EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode(); EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode();
if (OperationMode == EDisplayClusterOperationMode::Cluster) if (OperationMode == EDisplayClusterOperationMode::Cluster)
...@@ -45,10 +46,10 @@ public: ...@@ -45,10 +46,10 @@ public:
FMemoryReader MemoryReader(Event.EventData); FMemoryReader MemoryReader(Event.EventData);
uint32 EventObjectId; FString EventObjectName;
// This reads the value! // This reads the value!
MemoryReader << EventObjectId; MemoryReader << EventObjectName;
if (EventObjectId != ObjectId) if (EventObjectName != ObjectName)
{ {
// Event does not belong to this object. // Event does not belong to this object.
return; return;
...@@ -100,6 +101,7 @@ public: ...@@ -100,6 +101,7 @@ public:
EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode(); EDisplayClusterOperationMode OperationMode = IDisplayCluster::Get().GetOperationMode();
if (OperationMode != EDisplayClusterOperationMode::Cluster) if (OperationMode != EDisplayClusterOperationMode::Cluster)
{ {
// Cluster event can be bypassed and function directly called
(Object->*MemberFunction)(Forward<ArgTypes>(Arguments)...); (Object->*MemberFunction)(Forward<ArgTypes>(Arguments)...);
} }
else else
...@@ -112,7 +114,7 @@ public: ...@@ -112,7 +114,7 @@ public:
ClusterEvent.bShouldDiscardOnRepeat = false; ClusterEvent.bShouldDiscardOnRepeat = false;
FMemoryWriter MemoryWriter(ClusterEvent.EventData); FMemoryWriter MemoryWriter(ClusterEvent.EventData);
MemoryWriter << ObjectId; MemoryWriter << const_cast<FString&>(ObjectName);
MemoryWriter << const_cast<FString&>(MethodName); MemoryWriter << const_cast<FString&>(MethodName);
SerializeParameters(&MemoryWriter, Forward<ArgTypes>(Arguments)...); SerializeParameters(&MemoryWriter, Forward<ArgTypes>(Arguments)...);
...@@ -122,7 +124,7 @@ public: ...@@ -122,7 +124,7 @@ public:
private: private:
const FString MethodName; const FString MethodName;
uint32 ObjectId; FString ObjectName;
ObjectType* Object = nullptr; ObjectType* Object = nullptr;
FOnClusterEventBinaryListener ClusterEventListenerDelegate; FOnClusterEventBinaryListener ClusterEventListenerDelegate;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment