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

70 lines
1.8 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright (c) 2022 Sentry. All Rights Reserved.
#include "SentryEventDesktop.h"
#include "SentryDefines.h"
#include "Infrastructure/SentryConvertorsDesktop.h"
#if USE_SENTRY_NATIVE
SentryEventDesktop::SentryEventDesktop()
{
EventDesktop = sentry_value_new_event();
}
SentryEventDesktop::SentryEventDesktop(sentry_value_t event, bool isCrash)
{
EventDesktop = event;
IsCrashEvent = isCrash;
}
SentryEventDesktop::~SentryEventDesktop()
{
// Put custom destructor logic here if needed
}
sentry_value_t SentryEventDesktop::GetNativeObject()
{
return EventDesktop;
}
void SentryEventDesktop::SetMessage(const FString& message)
{
sentry_value_t messageСontainer = sentry_value_new_object();
sentry_value_set_by_key(messageСontainer, "formatted", sentry_value_new_string(TCHAR_TO_UTF8(*message)));
sentry_value_set_by_key(EventDesktop, "message", messageСontainer);
}
FString SentryEventDesktop::GetMessage() const
{
sentry_value_t messageСontainer = sentry_value_get_by_key(EventDesktop, "message");
sentry_value_t message = sentry_value_get_by_key(messageСontainer, "formatted");
return FString(sentry_value_as_string(message));
}
void SentryEventDesktop::SetLevel(ESentryLevel level)
{
FString levelStr = SentryConvertorsDesktop::SentryLevelToString(level).ToLower();
if (!levelStr.IsEmpty())
sentry_value_set_by_key(EventDesktop, "level", sentry_value_new_string(TCHAR_TO_ANSI(*levelStr)));
}
ESentryLevel SentryEventDesktop::GetLevel() const
{
sentry_value_t level = sentry_value_get_by_key(EventDesktop, "level");
return SentryConvertorsDesktop::SentryLevelToUnreal(level);
}
bool SentryEventDesktop::IsCrash() const
{
return IsCrashEvent;
}
bool SentryEventDesktop::IsAnr() const
{
// ANR error tracking is not available in `sentry-native`
return false;
}
#endif