70 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// 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
 |