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

48 lines
1.4 KiB
C++

// Copyright (c) 2024 Sentry. All Rights Reserved.
#include "SentrySamplingContext.h"
#include "SentryTransactionContext.h"
#include "Interface/SentrySamplingContextInterface.h"
#if PLATFORM_ANDROID
#include "Android/SentrySamplingContextAndroid.h"
#elif PLATFORM_IOS || PLATFORM_MAC
#include "Apple/SentrySamplingContextApple.h"
#endif
USentrySamplingContext::USentrySamplingContext()
{
}
USentryTransactionContext* USentrySamplingContext::GetTransactionContext() const
{
if (!SentrySamplingContextNativeImpl)
return nullptr;
TSharedPtr<ISentryTransactionContext> transactionContextNativeImpl = SentrySamplingContextNativeImpl->GetTransactionContext();
USentryTransactionContext* unrealTransactionContext = NewObject<USentryTransactionContext>();
unrealTransactionContext->InitWithNativeImpl(transactionContextNativeImpl);
return unrealTransactionContext;
}
TMap<FString, FString> USentrySamplingContext::GetCustomSamplingContext() const
{
if (!SentrySamplingContextNativeImpl)
return TMap<FString, FString>();
return SentrySamplingContextNativeImpl->GetCustomSamplingContext();
}
void USentrySamplingContext::InitWithNativeImpl(TSharedPtr<ISentrySamplingContext> samplingContextImpl)
{
SentrySamplingContextNativeImpl = samplingContextImpl;
}
TSharedPtr<ISentrySamplingContext> USentrySamplingContext::GetNativeImpl()
{
return SentrySamplingContextNativeImpl;
}