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
							 |