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;
 | 
						|
}; |