zworld-em/Plugins/sentry-unreal/Source/Sentry/Private/SentryId.cpp
2025-05-11 22:07:21 +08:00

46 lines
1.0 KiB
C++

// Copyright (c) 2022 Sentry. All Rights Reserved.
#include "SentryId.h"
#include "Interface/SentryIdInterface.h"
#if PLATFORM_ANDROID
#include "Android/SentryIdAndroid.h"
#elif PLATFORM_IOS || PLATFORM_MAC
#include "Apple/SentryIdApple.h"
#elif PLATFORM_WINDOWS || PLATFORM_LINUX
#include "Desktop/SentryIdDesktop.h"
#endif
USentryId::USentryId()
{
if (USentryId::StaticClass()->GetDefaultObject() != this)
{
#if PLATFORM_ANDROID
SentryIdNativeImpl = MakeShareable(new SentryIdAndroid());
#elif PLATFORM_IOS || PLATFORM_MAC
SentryIdNativeImpl = MakeShareable(new SentryIdApple());
#elif (PLATFORM_WINDOWS || PLATFORM_LINUX) && USE_SENTRY_NATIVE
SentryIdNativeImpl = MakeShareable(new SentryIdDesktop());
#endif
}
}
FString USentryId::ToString() const
{
if(!SentryIdNativeImpl)
return FString();
return SentryIdNativeImpl->ToString();
}
void USentryId::InitWithNativeImpl(TSharedPtr<ISentryId> idImpl)
{
SentryIdNativeImpl = idImpl;
}
TSharedPtr<ISentryId> USentryId::GetNativeImpl()
{
return SentryIdNativeImpl;
}