Have long running analytic transactions return actual transactions.

Also add `AnalyticsService.getLongRunningTransaction` and change `AnalyticsService.stopLongRunningTransaction` to `removeLongRunningTransaction`.
This commit is contained in:
Jorge Martín 2025-11-19 17:24:35 +01:00 committed by Jorge Martin Espinosa
parent 441b2e7fb5
commit 3d590c1c46
5 changed files with 40 additions and 11 deletions

View file

@ -55,9 +55,20 @@ interface AnalyticsService : AnalyticsTracker, ErrorTracker {
*/
fun startTransaction(name: String, operation: String? = null): AnalyticsTransaction
fun startLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction)
/**
* Starts an [AnalyticsLongRunningTransaction], that can be shared with other components.
*/
fun startLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction): AnalyticsTransaction
fun stopLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction)
/**
* Gets an ongoing [AnalyticsLongRunningTransaction], if it exists.
*/
fun getLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction): AnalyticsTransaction?
/**
* Removes an ongoing [AnalyticsLongRunningTransaction] so it's no longer shared.
*/
fun removeLongRunningTransaction(longRunningTransaction: AnalyticsLongRunningTransaction): AnalyticsTransaction?
}
inline fun <T> AnalyticsService.recordTransaction(name: String, operation: String, block: (AnalyticsTransaction) -> T): T {