SubscriberResourceWrapper.smali 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. .class public final Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;
  2. .super Ljava/util/concurrent/atomic/AtomicReference;
  3. .source "SubscriberResourceWrapper.java"
  4. # interfaces
  5. .implements Lorg/reactivestreams/Subscriber;
  6. .implements Lio/reactivex/disposables/Disposable;
  7. .implements Lorg/reactivestreams/Subscription;
  8. # annotations
  9. .annotation system Ldalvik/annotation/Signature;
  10. value = {
  11. "<T:",
  12. "Ljava/lang/Object;",
  13. ">",
  14. "Ljava/util/concurrent/atomic/AtomicReference<",
  15. "Lio/reactivex/disposables/Disposable;",
  16. ">;",
  17. "Lorg/reactivestreams/Subscriber<",
  18. "TT;>;",
  19. "Lio/reactivex/disposables/Disposable;",
  20. "Lorg/reactivestreams/Subscription;"
  21. }
  22. .end annotation
  23. # static fields
  24. .field private static final serialVersionUID:J = -0x77840c661fe71fc2L
  25. # instance fields
  26. .field final actual:Lorg/reactivestreams/Subscriber;
  27. .annotation system Ldalvik/annotation/Signature;
  28. value = {
  29. "Lorg/reactivestreams/Subscriber<",
  30. "-TT;>;"
  31. }
  32. .end annotation
  33. .end field
  34. .field final subscription:Ljava/util/concurrent/atomic/AtomicReference;
  35. .annotation system Ldalvik/annotation/Signature;
  36. value = {
  37. "Ljava/util/concurrent/atomic/AtomicReference<",
  38. "Lorg/reactivestreams/Subscription;",
  39. ">;"
  40. }
  41. .end annotation
  42. .end field
  43. # direct methods
  44. .method public constructor <init>(Lorg/reactivestreams/Subscriber;)V
  45. .locals 1
  46. .annotation system Ldalvik/annotation/Signature;
  47. value = {
  48. "(",
  49. "Lorg/reactivestreams/Subscriber<",
  50. "-TT;>;)V"
  51. }
  52. .end annotation
  53. .line 32
  54. invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
  55. .line 30
  56. new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
  57. invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
  58. iput-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  59. .line 33
  60. iput-object p1, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->actual:Lorg/reactivestreams/Subscriber;
  61. return-void
  62. .end method
  63. # virtual methods
  64. .method public cancel()V
  65. .locals 0
  66. .line 94
  67. invoke-virtual {p0}, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->dispose()V
  68. return-void
  69. .end method
  70. .method public dispose()V
  71. .locals 1
  72. .line 82
  73. iget-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  74. invoke-static {v0}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->cancel(Ljava/util/concurrent/atomic/AtomicReference;)Z
  75. .line 84
  76. invoke-static {p0}, Lio/reactivex/internal/disposables/DisposableHelper;->dispose(Ljava/util/concurrent/atomic/AtomicReference;)Z
  77. return-void
  78. .end method
  79. .method public isDisposed()Z
  80. .locals 2
  81. .line 89
  82. iget-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  83. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  84. move-result-object v0
  85. sget-object v1, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->CANCELLED:Lio/reactivex/internal/subscriptions/SubscriptionHelper;
  86. if-ne v0, v1, :cond_0
  87. const/4 v0, 0x1
  88. goto :goto_0
  89. :cond_0
  90. const/4 v0, 0x0
  91. :goto_0
  92. return v0
  93. .end method
  94. .method public onComplete()V
  95. .locals 1
  96. .line 69
  97. invoke-virtual {p0}, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->dispose()V
  98. .line 70
  99. iget-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->actual:Lorg/reactivestreams/Subscriber;
  100. invoke-interface {v0}, Lorg/reactivestreams/Subscriber;->onComplete()V
  101. return-void
  102. .end method
  103. .method public onError(Ljava/lang/Throwable;)V
  104. .locals 1
  105. .line 63
  106. invoke-virtual {p0}, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->dispose()V
  107. .line 64
  108. iget-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->actual:Lorg/reactivestreams/Subscriber;
  109. invoke-interface {v0, p1}, Lorg/reactivestreams/Subscriber;->onError(Ljava/lang/Throwable;)V
  110. return-void
  111. .end method
  112. .method public onNext(Ljava/lang/Object;)V
  113. .locals 1
  114. .annotation system Ldalvik/annotation/Signature;
  115. value = {
  116. "(TT;)V"
  117. }
  118. .end annotation
  119. .line 58
  120. iget-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->actual:Lorg/reactivestreams/Subscriber;
  121. invoke-interface {v0, p1}, Lorg/reactivestreams/Subscriber;->onNext(Ljava/lang/Object;)V
  122. return-void
  123. .end method
  124. .method public onSubscribe(Lorg/reactivestreams/Subscription;)V
  125. .locals 2
  126. .line 39
  127. :cond_0
  128. iget-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  129. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  130. move-result-object v0
  131. check-cast v0, Lorg/reactivestreams/Subscription;
  132. .line 40
  133. sget-object v1, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->CANCELLED:Lio/reactivex/internal/subscriptions/SubscriptionHelper;
  134. if-ne v0, v1, :cond_1
  135. .line 41
  136. invoke-interface {p1}, Lorg/reactivestreams/Subscription;->cancel()V
  137. return-void
  138. :cond_1
  139. if-eqz v0, :cond_2
  140. .line 45
  141. invoke-interface {p1}, Lorg/reactivestreams/Subscription;->cancel()V
  142. .line 46
  143. invoke-static {}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->reportSubscriptionSet()V
  144. return-void
  145. .line 49
  146. :cond_2
  147. iget-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  148. const/4 v1, 0x0
  149. invoke-virtual {v0, v1, p1}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
  150. move-result v0
  151. if-eqz v0, :cond_0
  152. .line 50
  153. iget-object p1, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->actual:Lorg/reactivestreams/Subscriber;
  154. invoke-interface {p1, p0}, Lorg/reactivestreams/Subscriber;->onSubscribe(Lorg/reactivestreams/Subscription;)V
  155. return-void
  156. .end method
  157. .method public request(J)V
  158. .locals 1
  159. .line 75
  160. invoke-static {p1, p2}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->validate(J)Z
  161. move-result v0
  162. if-eqz v0, :cond_0
  163. .line 76
  164. iget-object v0, p0, Lio/reactivex/internal/subscribers/SubscriberResourceWrapper;->subscription:Ljava/util/concurrent/atomic/AtomicReference;
  165. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  166. move-result-object v0
  167. check-cast v0, Lorg/reactivestreams/Subscription;
  168. invoke-interface {v0, p1, p2}, Lorg/reactivestreams/Subscription;->request(J)V
  169. :cond_0
  170. return-void
  171. .end method
  172. .method public setResource(Lio/reactivex/disposables/Disposable;)V
  173. .locals 0
  174. .line 98
  175. invoke-static {p0, p1}, Lio/reactivex/internal/disposables/DisposableHelper;->set(Ljava/util/concurrent/atomic/AtomicReference;Lio/reactivex/disposables/Disposable;)Z
  176. return-void
  177. .end method