133 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (c) 2022 Sentry. All Rights Reserved.
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include "SentryDataTypes.h"
 | 
						|
 | 
						|
#include "SentryScope.generated.h"
 | 
						|
 | 
						|
class ISentryScope;
 | 
						|
class USentryBreadcrumb;
 | 
						|
class USentryAttachment;
 | 
						|
 | 
						|
/**
 | 
						|
 * Scope data to be sent with the event.
 | 
						|
 */
 | 
						|
UCLASS(BlueprintType)
 | 
						|
class SENTRY_API USentryScope : public UObject
 | 
						|
{
 | 
						|
	GENERATED_BODY()
 | 
						|
 | 
						|
public:
 | 
						|
	USentryScope();
 | 
						|
 | 
						|
	/** Adds a breadcrumb to the current Scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void AddBreadcrumb(USentryBreadcrumb* Breadcrumb);
 | 
						|
 | 
						|
	/** Clear all breadcrumbs of the current Scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void ClearBreadcrumbs();
 | 
						|
 | 
						|
	/** Adds an attachment to the current Scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void AddAttachment(USentryAttachment* Attachment);
 | 
						|
 | 
						|
	/** Clear all attachments of the current Scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void ClearAttachments();
 | 
						|
 | 
						|
	/** Sets a global tag. Tags are searchable key/value string pairs attached to every event. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetTagValue(const FString& Key, const FString& Value);
 | 
						|
 | 
						|
	/** Gets a global tag. Tags are searchable key/value string pairs attached to every event. */
 | 
						|
	UFUNCTION(BlueprintPure, Category = "Sentry")
 | 
						|
	FString GetTagValue(const FString& Key) const;
 | 
						|
 | 
						|
	/** Removes the tag for the specified key. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void RemoveTag(const FString& Key);
 | 
						|
 | 
						|
	/** Sets global tags. Tags are searchable key/value string pairs attached to every event. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetTags(const TMap<FString, FString>& Tags);
 | 
						|
 | 
						|
	/** Gets a global tags. Tags are searchable key/value string pairs attached to every event. */
 | 
						|
	UFUNCTION(BlueprintPure, Category = "Sentry")
 | 
						|
	TMap<FString, FString> GetTags() const;	
 | 
						|
 | 
						|
	/** Sets dist in the scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetDist(const FString& Dist);
 | 
						|
 | 
						|
	/** Gets dist in the scope. */
 | 
						|
	UFUNCTION(BlueprintPure, Category = "Sentry")
 | 
						|
	FString GetDist() const;
 | 
						|
 | 
						|
	/** Sets environment in the scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetEnvironment(const FString& Environment);
 | 
						|
 | 
						|
	/** Gets environment in the scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	FString GetEnvironment() const;
 | 
						|
 | 
						|
	/** Sets fingerprint in the scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetFingerprint(const TArray<FString>& Fingerprint);
 | 
						|
 | 
						|
	/** Gets fingerprint in the scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	TArray<FString> GetFingerprint() const;
 | 
						|
 | 
						|
	/** Sets the level in the scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetLevel(ESentryLevel Level);
 | 
						|
 | 
						|
	/** Gets the level in the scope. */
 | 
						|
	UFUNCTION(BlueprintPure, Category = "Sentry")
 | 
						|
	ESentryLevel GetLevel() const;
 | 
						|
 | 
						|
	/** Sets context values which will be used for enriching events. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetContext(const FString& Key, const TMap<FString, FString>& Values);
 | 
						|
 | 
						|
	/** Sets context values which will be used for enriching events. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void RemoveContext(const FString& Key);
 | 
						|
 | 
						|
	/** Sets a global extra. These will be sent with every event. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetExtraValue(const FString& Key, const FString& Value);
 | 
						|
 | 
						|
	/** Gets a global extra. These will be sent with every event. */
 | 
						|
	UFUNCTION(BlueprintPure, Category = "Sentry")
 | 
						|
	FString GetExtraValue(const FString& Key) const;
 | 
						|
 | 
						|
	/** Removes the extra for the specified key. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void RemoveExtra(const FString& Key);
 | 
						|
 | 
						|
	/** Sets global extras. These will be sent with every event. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void SetExtras(const TMap<FString, FString>& Extras);
 | 
						|
 | 
						|
	/** Gets global extras. These will be sent with every event. */
 | 
						|
	UFUNCTION(BlueprintPure, Category = "Sentry")
 | 
						|
	TMap<FString, FString> GetExtras() const;
 | 
						|
 | 
						|
	/** Clears the current scope. */
 | 
						|
	UFUNCTION(BlueprintCallable, Category = "Sentry")
 | 
						|
	void Clear();
 | 
						|
 | 
						|
	void InitWithNativeImpl(TSharedPtr<ISentryScope> scopeImpl);
 | 
						|
	TSharedPtr<ISentryScope> GetNativeImpl();
 | 
						|
 | 
						|
private:
 | 
						|
	TSharedPtr<ISentryScope> ScopeNativeImpl;
 | 
						|
};
 | 
						|
 | 
						|
DECLARE_DELEGATE_OneParam(FConfigureScopeNativeDelegate, USentryScope*);
 | 
						|
DECLARE_DYNAMIC_DELEGATE_OneParam(FConfigureScopeDelegate, USentryScope*, Scope);
 |