58 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								// Copyright (c) 2022 Sentry. All Rights Reserved.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "CoreMinimal.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "SentryDataTypes.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ISentryBreadcrumb;
							 | 
						||
| 
								 | 
							
								class ISentryEvent;
							 | 
						||
| 
								 | 
							
								class ISentryUserFeedback;
							 | 
						||
| 
								 | 
							
								class ISentryUser;
							 | 
						||
| 
								 | 
							
								class ISentryTransaction;
							 | 
						||
| 
								 | 
							
								class ISentryTransactionContext;
							 | 
						||
| 
								 | 
							
								class ISentryId;
							 | 
						||
| 
								 | 
							
								class ISentryScope;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class USentrySettings;
							 | 
						||
| 
								 | 
							
								class USentryBeforeSendHandler;
							 | 
						||
| 
								 | 
							
								class USentryTraceSampler;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								DECLARE_DELEGATE_OneParam(FSentryScopeDelegate, TSharedPtr<ISentryScope>);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ISentrySubsystem
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
									virtual ~ISentrySubsystem() = default;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									virtual void InitWithSettings(const USentrySettings* settings, USentryBeforeSendHandler* beforeSendHandler, USentryTraceSampler* traceSampler) = 0;
							 | 
						||
| 
								 | 
							
									virtual void Close() = 0;
							 | 
						||
| 
								 | 
							
									virtual bool IsEnabled() = 0;
							 | 
						||
| 
								 | 
							
									virtual ESentryCrashedLastRun IsCrashedLastRun() = 0;
							 | 
						||
| 
								 | 
							
									virtual void AddBreadcrumb(TSharedPtr<ISentryBreadcrumb> breadcrumb) = 0;
							 | 
						||
| 
								 | 
							
									virtual void AddBreadcrumbWithParams(const FString& Message, const FString& Category, const FString& Type, const TMap<FString, FString>& Data, ESentryLevel Level) = 0;
							 | 
						||
| 
								 | 
							
									virtual void ClearBreadcrumbs() = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryId> CaptureMessage(const FString& message, ESentryLevel level) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryId> CaptureMessageWithScope(const FString& message, const FSentryScopeDelegate& onConfigureScope, ESentryLevel level) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryId> CaptureEvent(TSharedPtr<ISentryEvent> event) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryId> CaptureEventWithScope(TSharedPtr<ISentryEvent> event, const FSentryScopeDelegate& onConfigureScope) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryId> CaptureException(const FString& type, const FString& message, int32 framesToSkip = 0) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryId> CaptureAssertion(const FString& type, const FString& message) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryId> CaptureEnsure(const FString& type, const FString& message) = 0;
							 | 
						||
| 
								 | 
							
									virtual void CaptureUserFeedback(TSharedPtr<ISentryUserFeedback> userFeedback) = 0;
							 | 
						||
| 
								 | 
							
									virtual void SetUser(TSharedPtr<ISentryUser> user) = 0;
							 | 
						||
| 
								 | 
							
									virtual void RemoveUser() = 0;
							 | 
						||
| 
								 | 
							
									virtual void ConfigureScope(const FSentryScopeDelegate& onConfigureScope) = 0;
							 | 
						||
| 
								 | 
							
									virtual void SetContext(const FString& key, const TMap<FString, FString>& values) = 0;
							 | 
						||
| 
								 | 
							
									virtual void SetTag(const FString& key, const FString& value) = 0;
							 | 
						||
| 
								 | 
							
									virtual void RemoveTag(const FString& key) = 0;
							 | 
						||
| 
								 | 
							
									virtual void SetLevel(ESentryLevel level) = 0;
							 | 
						||
| 
								 | 
							
									virtual void StartSession() = 0;
							 | 
						||
| 
								 | 
							
									virtual void EndSession() = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryTransaction> StartTransaction(const FString& name, const FString& operation) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryTransaction> StartTransactionWithContext(TSharedPtr<ISentryTransactionContext> context) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryTransaction> StartTransactionWithContextAndTimestamp(TSharedPtr<ISentryTransactionContext> context, int64 timestamp) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryTransaction> StartTransactionWithContextAndOptions(TSharedPtr<ISentryTransactionContext> context, const TMap<FString, FString>& options) = 0;
							 | 
						||
| 
								 | 
							
									virtual TSharedPtr<ISentryTransactionContext> ContinueTrace(const FString& sentryTrace, const TArray<FString>& baggageHeaders) = 0;
							 | 
						||
| 
								 | 
							
								};
							 |