173 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2022 Sentry. All Rights Reserved.
 | 
						|
 | 
						|
#include "SentryScopeApple.h"
 | 
						|
 | 
						|
#include "SentryBreadcrumbApple.h"
 | 
						|
#include "SentryAttachmentApple.h"
 | 
						|
 | 
						|
#include "Infrastructure/SentryConvertorsApple.h"
 | 
						|
 | 
						|
#include "Convenience/SentryInclude.h"
 | 
						|
#include "Convenience/SentryMacro.h"
 | 
						|
 | 
						|
SentryScopeApple::SentryScopeApple()
 | 
						|
{
 | 
						|
	ScopeApple = [[SENTRY_APPLE_CLASS(SentryScope) alloc] init];
 | 
						|
}
 | 
						|
 | 
						|
SentryScopeApple::SentryScopeApple(SentryScope* scope)
 | 
						|
{
 | 
						|
	ScopeApple = scope;
 | 
						|
}
 | 
						|
 | 
						|
SentryScopeApple::~SentryScopeApple()
 | 
						|
{
 | 
						|
	// Put custom destructor logic here if needed
 | 
						|
}
 | 
						|
 | 
						|
SentryScope* SentryScopeApple::GetNativeObject()
 | 
						|
{
 | 
						|
	return ScopeApple;
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::AddBreadcrumb(TSharedPtr<ISentryBreadcrumb> breadcrumb)
 | 
						|
{
 | 
						|
	TSharedPtr<SentryBreadcrumbApple> breadcrumbIOS = StaticCastSharedPtr<SentryBreadcrumbApple>(breadcrumb);
 | 
						|
 | 
						|
	[ScopeApple addBreadcrumb:breadcrumbIOS->GetNativeObject()];
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::ClearBreadcrumbs()
 | 
						|
{
 | 
						|
	[ScopeApple clearBreadcrumbs];
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::AddAttachment(TSharedPtr<ISentryAttachment> attachment)
 | 
						|
{
 | 
						|
	TSharedPtr<SentryAttachmentApple> attachmentIOS = StaticCastSharedPtr<SentryAttachmentApple>(attachment);
 | 
						|
 | 
						|
	[ScopeApple addAttachment:attachmentIOS->GetNativeObject()];
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::ClearAttachments()
 | 
						|
{
 | 
						|
	[ScopeApple clearAttachments];
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetTagValue(const FString& key, const FString& value)
 | 
						|
{
 | 
						|
	[ScopeApple setTagValue:value.GetNSString() forKey:key.GetNSString()];
 | 
						|
}
 | 
						|
 | 
						|
FString SentryScopeApple::GetTagValue(const FString& key) const
 | 
						|
{
 | 
						|
	NSDictionary* scopeDict = [ScopeApple serialize];
 | 
						|
	NSDictionary* tags = scopeDict[@"tags"];
 | 
						|
	return FString(tags[key.GetNSString()]);
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::RemoveTag(const FString& key)
 | 
						|
{
 | 
						|
	[ScopeApple removeTagForKey:key.GetNSString()];
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetTags(const TMap<FString, FString>& tags)
 | 
						|
{
 | 
						|
	[ScopeApple setTags:SentryConvertorsApple::StringMapToNative(tags)];
 | 
						|
}
 | 
						|
 | 
						|
TMap<FString, FString> SentryScopeApple::GetTags() const
 | 
						|
{
 | 
						|
	NSDictionary* scopeDict = [ScopeApple serialize];
 | 
						|
	return SentryConvertorsApple::StringMapToUnreal(scopeDict[@"tags"]);
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetDist(const FString& dist)
 | 
						|
{
 | 
						|
	[ScopeApple setDist:dist.GetNSString()];
 | 
						|
}
 | 
						|
 | 
						|
FString SentryScopeApple::GetDist() const
 | 
						|
{
 | 
						|
	NSDictionary* scopeDict = [ScopeApple serialize];
 | 
						|
	return FString(scopeDict[@"dist"]);
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetEnvironment(const FString& environment)
 | 
						|
{
 | 
						|
	[ScopeApple setEnvironment:environment.GetNSString()];
 | 
						|
}
 | 
						|
 | 
						|
FString SentryScopeApple::GetEnvironment() const
 | 
						|
{
 | 
						|
	NSDictionary* scopeDict = [ScopeApple serialize];
 | 
						|
	return FString(scopeDict[@"environment"]);
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetFingerprint(const TArray<FString>& fingerprint)
 | 
						|
{
 | 
						|
	[ScopeApple setFingerprint:SentryConvertorsApple::StringArrayToNative(fingerprint)];
 | 
						|
}
 | 
						|
 | 
						|
TArray<FString> SentryScopeApple::GetFingerprint() const
 | 
						|
{
 | 
						|
	NSDictionary* scopeDict = [ScopeApple serialize];
 | 
						|
	NSArray* fingerprint = scopeDict[@"fingerprint"];
 | 
						|
	return SentryConvertorsApple::StringArrayToUnreal(fingerprint);
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetLevel(ESentryLevel level)
 | 
						|
{
 | 
						|
	[ScopeApple setLevel:SentryConvertorsApple::SentryLevelToNative(level)];
 | 
						|
}
 | 
						|
 | 
						|
ESentryLevel SentryScopeApple::GetLevel() const
 | 
						|
{
 | 
						|
	NSDictionary* scopeDict = [ScopeApple serialize];
 | 
						|
	SentryLevel level = SentryConvertorsApple::StringToSentryLevel(scopeDict[@"level"]);
 | 
						|
	return SentryConvertorsApple::SentryLevelToUnreal(level);
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetContext(const FString& key, const TMap<FString, FString>& values)
 | 
						|
{
 | 
						|
	[ScopeApple setContextValue:SentryConvertorsApple::StringMapToNative(values) forKey:key.GetNSString()];
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::RemoveContext(const FString& key)
 | 
						|
{
 | 
						|
	[ScopeApple removeContextForKey:key.GetNSString()];
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetExtraValue(const FString& key, const FString& value)
 | 
						|
{
 | 
						|
	[ScopeApple setExtraValue:value.GetNSString() forKey:key.GetNSString()];
 | 
						|
}
 | 
						|
 | 
						|
FString SentryScopeApple::GetExtraValue(const FString& key) const
 | 
						|
{
 | 
						|
	NSDictionary* scopeDict = [ScopeApple serialize];
 | 
						|
	NSDictionary* extras = scopeDict[@"extra"];
 | 
						|
	return FString(extras[key.GetNSString()]);
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::RemoveExtra(const FString& key)
 | 
						|
{
 | 
						|
	[ScopeApple removeExtraForKey:key.GetNSString()];
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::SetExtras(const TMap<FString, FString>& extras)
 | 
						|
{
 | 
						|
	[ScopeApple setExtras:SentryConvertorsApple::StringMapToNative(extras)];
 | 
						|
}
 | 
						|
 | 
						|
TMap<FString, FString> SentryScopeApple::GetExtras() const
 | 
						|
{
 | 
						|
	NSDictionary* scopeDict = [ScopeApple serialize];
 | 
						|
	return SentryConvertorsApple::StringMapToUnreal(scopeDict[@"extra"]);
 | 
						|
}
 | 
						|
 | 
						|
void SentryScopeApple::Clear()
 | 
						|
{
 | 
						|
	[ScopeApple clear];
 | 
						|
}
 |