Files
UnrealEngine/Engine/Source/Developer/Datasmith/DatasmithFacade/Private/DirectLink/DatasmithFacadeEndpointObserverImpl.h
2025-05-18 13:04:45 +08:00

39 lines
1014 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "DirectLinkEndpoint.h"
#include "DirectLink/DatasmithFacadeEndpointObserver.h"
class FDatasmithFacadeEndpointObserverImpl : public DirectLink::IEndpointObserver
{
public:
virtual void OnStateChanged(const DirectLink::FRawInfo& RawInfo) override
{
if (OnStateChangedPtr)
{
// The new pointer will be owned by the C# wrapper.
OnStateChangedPtr(new FDatasmithFacadeRawInfo(RawInfo));
}
}
void RegisterOnStateChangedDelegate(FDatasmithFacadeEndpointObserver::OnStateChangedDelegate InOnStateChangedDelegate)
{
if (ensure(!OnStateChangedPtr))
{
OnStateChangedPtr = InOnStateChangedDelegate;
}
}
void UnregisterOnStateChangedDelegate(FDatasmithFacadeEndpointObserver::OnStateChangedDelegate InOnStateChangedDelegate)
{
if (ensure(OnStateChangedPtr == InOnStateChangedDelegate))
{
OnStateChangedPtr = nullptr;
}
}
private:
FDatasmithFacadeEndpointObserver::OnStateChangedDelegate OnStateChangedPtr;
};