71 lines
2.2 KiB
C++
71 lines
2.2 KiB
C++
// Copyright (c) 2023 Sentry. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/Object.h"
|
|
#include "SentryTransaction.generated.h"
|
|
|
|
class ISentryTransaction;
|
|
class USentrySpan;
|
|
|
|
/**
|
|
* Representation of an activity to measure or track.
|
|
*/
|
|
UCLASS(BlueprintType)
|
|
class SENTRY_API USentryTransaction : public UObject
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
USentryTransaction();
|
|
|
|
/** Starts a new child span. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
USentrySpan* StartChild(const FString& Operation, const FString& Description);
|
|
/** Starts a new child span with timestamp. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
USentrySpan* StartChildWithTimestamp(const FString& Operation, const FString& Description, int64 Timestamp);
|
|
|
|
/** Finishes and sends a transaction to Sentry. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
void Finish();
|
|
/** Finishes with timestamp and sends a transaction to Sentry. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
void FinishWithTimestamp(int64 Timestamp);
|
|
|
|
/** Checks whether the transaction finished. */
|
|
UFUNCTION(BlueprintPure, Category = "Sentry")
|
|
bool IsFinished() const;
|
|
|
|
/** Sets transactions name. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
void SetName(const FString& name);
|
|
|
|
/** Sets tag associated with the transaction. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
void SetTag(const FString& key, const FString& value);
|
|
|
|
/** Removes tag associated with the transaction. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
void RemoveTag(const FString& key);
|
|
|
|
/** Sets data associated with the transaction. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
void SetData(const FString& key, const TMap<FString, FString>& values);
|
|
|
|
/** Removes data associated with the transaction. */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
void RemoveData(const FString& key);
|
|
|
|
/** Gets trace information that could be sent as a `sentry-trace` header */
|
|
UFUNCTION(BlueprintCallable, Category = "Sentry")
|
|
void GetTrace(FString& name, FString& value);
|
|
|
|
void InitWithNativeImpl(TSharedPtr<ISentryTransaction> transactionImpl);
|
|
TSharedPtr<ISentryTransaction> GetNativeImpl();
|
|
|
|
private:
|
|
TSharedPtr<ISentryTransaction> SentryTransactionNativeImpl;
|
|
};
|