.class public final Landroidx/room/TransactionElement; .super Ljava/lang/Object; .source "SourceFile" # interfaces .implements Lkotlin/coroutines/CoroutineContext$Element; # annotations .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroidx/annotation/RestrictTo$Scope; } .end annotation .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/room/TransactionElement$Key; } .end annotation # static fields .field public static final Key:Landroidx/room/TransactionElement$Key; # instance fields .field private final referenceCount:Ljava/util/concurrent/atomic/AtomicInteger; .field private final transactionDispatcher:Lkotlin/coroutines/ContinuationInterceptor; # direct methods .method static constructor ()V .locals 2 new-instance v0, Landroidx/room/TransactionElement$Key; const/4 v1, 0x0 invoke-direct {v0, v1}, Landroidx/room/TransactionElement$Key;->(Lkotlin/jvm/internal/DefaultConstructorMarker;)V sput-object v0, Landroidx/room/TransactionElement;->Key:Landroidx/room/TransactionElement$Key; return-void .end method .method public constructor (Lkotlin/coroutines/ContinuationInterceptor;)V .locals 1 .line 153 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Landroidx/room/TransactionElement;->transactionDispatcher:Lkotlin/coroutines/ContinuationInterceptor; .line 167 new-instance p1, Ljava/util/concurrent/atomic/AtomicInteger; const/4 v0, 0x0 invoke-direct {p1, v0}, Ljava/util/concurrent/atomic/AtomicInteger;->(I)V iput-object p1, p0, Landroidx/room/TransactionElement;->referenceCount:Ljava/util/concurrent/atomic/AtomicInteger; return-void .end method # virtual methods .method public final acquire()V .locals 1 iget-object v0, p0, Landroidx/room/TransactionElement;->referenceCount:Ljava/util/concurrent/atomic/AtomicInteger; .line 170 invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->incrementAndGet()I return-void .end method .method public fold(Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(TR;", "Lkotlin/jvm/functions/Function2;", ")TR;" } .end annotation .line 153 invoke-static {p0, p1, p2}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->fold(Lkotlin/coroutines/CoroutineContext$Element;Ljava/lang/Object;Lkotlin/jvm/functions/Function2;)Ljava/lang/Object; move-result-object p1 return-object p1 .end method .method public get(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lkotlin/coroutines/CoroutineContext$Key;", ")TE;" } .end annotation .line 153 invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->get(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext$Element; move-result-object p1 return-object p1 .end method .method public getKey()Lkotlin/coroutines/CoroutineContext$Key; .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lkotlin/coroutines/CoroutineContext$Key;" } .end annotation sget-object v0, Landroidx/room/TransactionElement;->Key:Landroidx/room/TransactionElement$Key; return-object v0 .end method .method public final getTransactionDispatcher$room_ktx_release()Lkotlin/coroutines/ContinuationInterceptor; .locals 1 iget-object v0, p0, Landroidx/room/TransactionElement;->transactionDispatcher:Lkotlin/coroutines/ContinuationInterceptor; return-object v0 .end method .method public minusKey(Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext; .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lkotlin/coroutines/CoroutineContext$Key;", ")", "Lkotlin/coroutines/CoroutineContext;" } .end annotation .line 153 invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->minusKey(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext$Key;)Lkotlin/coroutines/CoroutineContext; move-result-object p1 return-object p1 .end method .method public plus(Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext; .locals 0 .line 153 invoke-static {p0, p1}, Lkotlin/coroutines/CoroutineContext$Element$DefaultImpls;->plus(Lkotlin/coroutines/CoroutineContext$Element;Lkotlin/coroutines/CoroutineContext;)Lkotlin/coroutines/CoroutineContext; move-result-object p1 return-object p1 .end method .method public final release()V .locals 2 iget-object v0, p0, Landroidx/room/TransactionElement;->referenceCount:Ljava/util/concurrent/atomic/AtomicInteger; .line 174 invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicInteger;->decrementAndGet()I move-result v0 if-ltz v0, :cond_0 return-void .line 176 :cond_0 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Transaction was never started or was already released." invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method