BasicFuseableConditionalSubscriber.smali 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313
  1. .class public abstract Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;
  2. .super Ljava/lang/Object;
  3. .source "BasicFuseableConditionalSubscriber.java"
  4. # interfaces
  5. .implements Lio/reactivex/internal/fuseable/ConditionalSubscriber;
  6. .implements Lio/reactivex/internal/fuseable/QueueSubscription;
  7. # annotations
  8. .annotation system Ldalvik/annotation/Signature;
  9. value = {
  10. "<T:",
  11. "Ljava/lang/Object;",
  12. "R:",
  13. "Ljava/lang/Object;",
  14. ">",
  15. "Ljava/lang/Object;",
  16. "Lio/reactivex/internal/fuseable/ConditionalSubscriber<",
  17. "TT;>;",
  18. "Lio/reactivex/internal/fuseable/QueueSubscription<",
  19. "TR;>;"
  20. }
  21. .end annotation
  22. # instance fields
  23. .field protected final actual:Lio/reactivex/internal/fuseable/ConditionalSubscriber;
  24. .annotation system Ldalvik/annotation/Signature;
  25. value = {
  26. "Lio/reactivex/internal/fuseable/ConditionalSubscriber<",
  27. "-TR;>;"
  28. }
  29. .end annotation
  30. .end field
  31. .field protected done:Z
  32. .field protected qs:Lio/reactivex/internal/fuseable/QueueSubscription;
  33. .annotation system Ldalvik/annotation/Signature;
  34. value = {
  35. "Lio/reactivex/internal/fuseable/QueueSubscription<",
  36. "TT;>;"
  37. }
  38. .end annotation
  39. .end field
  40. .field protected s:Lorg/reactivestreams/Subscription;
  41. .field protected sourceMode:I
  42. # direct methods
  43. .method public constructor <init>(Lio/reactivex/internal/fuseable/ConditionalSubscriber;)V
  44. .locals 0
  45. .annotation system Ldalvik/annotation/Signature;
  46. value = {
  47. "(",
  48. "Lio/reactivex/internal/fuseable/ConditionalSubscriber<",
  49. "-TR;>;)V"
  50. }
  51. .end annotation
  52. .line 49
  53. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  54. .line 50
  55. iput-object p1, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->actual:Lio/reactivex/internal/fuseable/ConditionalSubscriber;
  56. return-void
  57. .end method
  58. # virtual methods
  59. .method protected afterDownstream()V
  60. .locals 0
  61. return-void
  62. .end method
  63. .method protected beforeDownstream()Z
  64. .locals 1
  65. const/4 v0, 0x1
  66. return v0
  67. .end method
  68. .method public cancel()V
  69. .locals 1
  70. .line 157
  71. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->s:Lorg/reactivestreams/Subscription;
  72. invoke-interface {v0}, Lorg/reactivestreams/Subscription;->cancel()V
  73. return-void
  74. .end method
  75. .method public clear()V
  76. .locals 1
  77. .line 167
  78. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
  79. invoke-interface {v0}, Lio/reactivex/internal/fuseable/QueueSubscription;->clear()V
  80. return-void
  81. .end method
  82. .method protected final fail(Ljava/lang/Throwable;)V
  83. .locals 1
  84. .line 108
  85. invoke-static {p1}, Lio/reactivex/exceptions/Exceptions;->throwIfFatal(Ljava/lang/Throwable;)V
  86. .line 109
  87. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->s:Lorg/reactivestreams/Subscription;
  88. invoke-interface {v0}, Lorg/reactivestreams/Subscription;->cancel()V
  89. .line 110
  90. invoke-virtual {p0, p1}, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->onError(Ljava/lang/Throwable;)V
  91. return-void
  92. .end method
  93. .method public isEmpty()Z
  94. .locals 1
  95. .line 162
  96. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
  97. invoke-interface {v0}, Lio/reactivex/internal/fuseable/QueueSubscription;->isEmpty()Z
  98. move-result v0
  99. return v0
  100. .end method
  101. .method public final offer(Ljava/lang/Object;)Z
  102. .locals 1
  103. .annotation system Ldalvik/annotation/Signature;
  104. value = {
  105. "(TR;)Z"
  106. }
  107. .end annotation
  108. .line 176
  109. new-instance p1, Ljava/lang/UnsupportedOperationException;
  110. const-string v0, "Should not be called!"
  111. invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
  112. throw p1
  113. .end method
  114. .method public final offer(Ljava/lang/Object;Ljava/lang/Object;)Z
  115. .locals 0
  116. .annotation system Ldalvik/annotation/Signature;
  117. value = {
  118. "(TR;TR;)Z"
  119. }
  120. .end annotation
  121. .line 181
  122. new-instance p1, Ljava/lang/UnsupportedOperationException;
  123. const-string p2, "Should not be called!"
  124. invoke-direct {p1, p2}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
  125. throw p1
  126. .end method
  127. .method public onComplete()V
  128. .locals 1
  129. .line 115
  130. iget-boolean v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->done:Z
  131. if-eqz v0, :cond_0
  132. return-void
  133. :cond_0
  134. const/4 v0, 0x1
  135. .line 118
  136. iput-boolean v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->done:Z
  137. .line 119
  138. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->actual:Lio/reactivex/internal/fuseable/ConditionalSubscriber;
  139. invoke-interface {v0}, Lio/reactivex/internal/fuseable/ConditionalSubscriber;->onComplete()V
  140. return-void
  141. .end method
  142. .method public onError(Ljava/lang/Throwable;)V
  143. .locals 1
  144. .line 95
  145. iget-boolean v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->done:Z
  146. if-eqz v0, :cond_0
  147. .line 96
  148. invoke-static {p1}, Lio/reactivex/plugins/RxJavaPlugins;->onError(Ljava/lang/Throwable;)V
  149. return-void
  150. :cond_0
  151. const/4 v0, 0x1
  152. .line 99
  153. iput-boolean v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->done:Z
  154. .line 100
  155. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->actual:Lio/reactivex/internal/fuseable/ConditionalSubscriber;
  156. invoke-interface {v0, p1}, Lio/reactivex/internal/fuseable/ConditionalSubscriber;->onError(Ljava/lang/Throwable;)V
  157. return-void
  158. .end method
  159. .method public final onSubscribe(Lorg/reactivestreams/Subscription;)V
  160. .locals 1
  161. .line 57
  162. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->s:Lorg/reactivestreams/Subscription;
  163. invoke-static {v0, p1}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->validate(Lorg/reactivestreams/Subscription;Lorg/reactivestreams/Subscription;)Z
  164. move-result v0
  165. if-eqz v0, :cond_1
  166. .line 59
  167. iput-object p1, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->s:Lorg/reactivestreams/Subscription;
  168. .line 60
  169. instance-of v0, p1, Lio/reactivex/internal/fuseable/QueueSubscription;
  170. if-eqz v0, :cond_0
  171. .line 61
  172. check-cast p1, Lio/reactivex/internal/fuseable/QueueSubscription;
  173. iput-object p1, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
  174. .line 64
  175. :cond_0
  176. invoke-virtual {p0}, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->beforeDownstream()Z
  177. move-result p1
  178. if-eqz p1, :cond_1
  179. .line 66
  180. iget-object p1, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->actual:Lio/reactivex/internal/fuseable/ConditionalSubscriber;
  181. invoke-interface {p1, p0}, Lio/reactivex/internal/fuseable/ConditionalSubscriber;->onSubscribe(Lorg/reactivestreams/Subscription;)V
  182. .line 68
  183. invoke-virtual {p0}, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->afterDownstream()V
  184. :cond_1
  185. return-void
  186. .end method
  187. .method public request(J)V
  188. .locals 1
  189. .line 152
  190. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->s:Lorg/reactivestreams/Subscription;
  191. invoke-interface {v0, p1, p2}, Lorg/reactivestreams/Subscription;->request(J)V
  192. return-void
  193. .end method
  194. .method protected final transitiveBoundaryFusion(I)I
  195. .locals 2
  196. .line 133
  197. iget-object v0, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->qs:Lio/reactivex/internal/fuseable/QueueSubscription;
  198. if-eqz v0, :cond_1
  199. and-int/lit8 v1, p1, 0x4
  200. if-nez v1, :cond_1
  201. .line 136
  202. invoke-interface {v0, p1}, Lio/reactivex/internal/fuseable/QueueSubscription;->requestFusion(I)I
  203. move-result p1
  204. if-eqz p1, :cond_0
  205. .line 138
  206. iput p1, p0, Lio/reactivex/internal/subscribers/BasicFuseableConditionalSubscriber;->sourceMode:I
  207. :cond_0
  208. return p1
  209. :cond_1
  210. const/4 p1, 0x0
  211. return p1
  212. .end method