InnerQueuedObserver.smali 7.6 KB

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