83 lines
2.1 KiB
C++
83 lines
2.1 KiB
C++
|
|
// Copyright (c) 2023 Sentry. All Rights Reserved.
|
|||
|
|
|
|||
|
|
#include "SentrySpanApple.h"
|
|||
|
|
|
|||
|
|
#include "SentryDefines.h"
|
|||
|
|
|
|||
|
|
#include "Infrastructure/SentryConvertorsApple.h"
|
|||
|
|
|
|||
|
|
#include "Convenience/SentryInclude.h"
|
|||
|
|
#include "Convenience/SentryMacro.h"
|
|||
|
|
|
|||
|
|
SentrySpanApple::SentrySpanApple(id<SentrySpan> span)
|
|||
|
|
{
|
|||
|
|
SpanApple = span;
|
|||
|
|
[SpanApple retain];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
SentrySpanApple::~SentrySpanApple()
|
|||
|
|
{
|
|||
|
|
[SpanApple release];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
id<SentrySpan> SentrySpanApple::GetNativeObject()
|
|||
|
|
{
|
|||
|
|
return SpanApple;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TSharedPtr<ISentrySpan> SentrySpanApple::StartChild(const FString& operation, const FString& desctiption)
|
|||
|
|
{
|
|||
|
|
id<SentrySpan> span = [SpanApple startChildWithOperation:operation.GetNSString() description:desctiption.GetNSString()];
|
|||
|
|
return MakeShareable(new SentrySpanApple(span));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
TSharedPtr<ISentrySpan> SentrySpanApple::StartChildWithTimestamp(const FString& operation, const FString& desctiption, int64 timestamp)
|
|||
|
|
{
|
|||
|
|
UE_LOG(LogSentrySdk, Log, TEXT("Starting child span with explicit timestamp not supported on Mac/iOS."));
|
|||
|
|
return StartChild(operation, desctiption);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SentrySpanApple::Finish()
|
|||
|
|
{
|
|||
|
|
[SpanApple finish];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SentrySpanApple::FinishWithTimestamp(int64 timestamp)
|
|||
|
|
{
|
|||
|
|
UE_LOG(LogSentrySdk, Log, TEXT("Finishing span with explicit timestamp not supported on Mac/iOS."));
|
|||
|
|
Finish();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool SentrySpanApple::IsFinished() const
|
|||
|
|
{
|
|||
|
|
return SpanApple.isFinished;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SentrySpanApple::SetTag(const FString& key, const FString& value)
|
|||
|
|
{
|
|||
|
|
[SpanApple setTagValue:value.GetNSString() forKey:key.GetNSString()];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SentrySpanApple::RemoveTag(const FString& key)
|
|||
|
|
{
|
|||
|
|
[SpanApple removeTagForKey:key.GetNSString()];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SentrySpanApple::SetData(const FString& key, const TMap<FString, FString>& values)
|
|||
|
|
{
|
|||
|
|
[SpanApple setDataValue:SentryConvertorsApple::StringMapToNative(values) forKey:key.GetNSString()];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SentrySpanApple::RemoveData(const FString& key)
|
|||
|
|
{
|
|||
|
|
[SpanApple removeDataForKey:key.GetNSString()];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SentrySpanApple::GetTrace(FString& name, FString& value)
|
|||
|
|
{
|
|||
|
|
SentryTraceHeader* traceHeader = [SpanApple toTraceHeader];
|
|||
|
|
|
|||
|
|
name = TEXT("sentry-trace");
|
|||
|
|
value = FString([traceHeader value]);
|
|||
|
|
}
|