ScalarSubscription.smali 5.5 KB

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