UnicastSubject$UnicastQueueDisposable.smali 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. .class final Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;
  2. .super Lio/reactivex/internal/observers/BasicIntQueueDisposable;
  3. .source "UnicastSubject.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/EnclosingClass;
  6. value = Lio/reactivex/subjects/UnicastSubject;
  7. .end annotation
  8. .annotation system Ldalvik/annotation/InnerClass;
  9. accessFlags = 0x10
  10. name = "UnicastQueueDisposable"
  11. .end annotation
  12. .annotation system Ldalvik/annotation/Signature;
  13. value = {
  14. "Lio/reactivex/internal/observers/BasicIntQueueDisposable<",
  15. "TT;>;"
  16. }
  17. .end annotation
  18. # static fields
  19. .field private static final serialVersionUID:J = 0x6e022e8b5b1c1e37L
  20. # instance fields
  21. .field final synthetic this$0:Lio/reactivex/subjects/UnicastSubject;
  22. # direct methods
  23. .method constructor <init>(Lio/reactivex/subjects/UnicastSubject;)V
  24. .locals 0
  25. .line 337
  26. iput-object p1, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  27. invoke-direct {p0}, Lio/reactivex/internal/observers/BasicIntQueueDisposable;-><init>()V
  28. return-void
  29. .end method
  30. # virtual methods
  31. .method public clear()V
  32. .locals 1
  33. .line 363
  34. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  35. iget-object v0, v0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
  36. invoke-virtual {v0}, Lio/reactivex/internal/queue/SpscLinkedArrayQueue;->clear()V
  37. return-void
  38. .end method
  39. .method public dispose()V
  40. .locals 2
  41. .line 368
  42. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  43. iget-boolean v0, v0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z
  44. if-nez v0, :cond_0
  45. .line 369
  46. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  47. const/4 v1, 0x1
  48. iput-boolean v1, v0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z
  49. .line 371
  50. invoke-virtual {v0}, Lio/reactivex/subjects/UnicastSubject;->doTerminate()V
  51. .line 373
  52. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  53. iget-object v0, v0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;
  54. const/4 v1, 0x0
  55. invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
  56. .line 374
  57. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  58. iget-object v0, v0, Lio/reactivex/subjects/UnicastSubject;->wip:Lio/reactivex/internal/observers/BasicIntQueueDisposable;
  59. invoke-virtual {v0}, Lio/reactivex/internal/observers/BasicIntQueueDisposable;->getAndIncrement()I
  60. move-result v0
  61. if-nez v0, :cond_0
  62. .line 375
  63. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  64. iget-object v0, v0, Lio/reactivex/subjects/UnicastSubject;->actual:Ljava/util/concurrent/atomic/AtomicReference;
  65. invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->lazySet(Ljava/lang/Object;)V
  66. .line 376
  67. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  68. iget-object v0, v0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
  69. invoke-virtual {v0}, Lio/reactivex/internal/queue/SpscLinkedArrayQueue;->clear()V
  70. :cond_0
  71. return-void
  72. .end method
  73. .method public isDisposed()Z
  74. .locals 1
  75. .line 383
  76. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  77. iget-boolean v0, v0, Lio/reactivex/subjects/UnicastSubject;->disposed:Z
  78. return v0
  79. .end method
  80. .method public isEmpty()Z
  81. .locals 1
  82. .line 358
  83. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  84. iget-object v0, v0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
  85. invoke-virtual {v0}, Lio/reactivex/internal/queue/SpscLinkedArrayQueue;->isEmpty()Z
  86. move-result v0
  87. return v0
  88. .end method
  89. .method public poll()Ljava/lang/Object;
  90. .locals 1
  91. .annotation system Ldalvik/annotation/Signature;
  92. value = {
  93. "()TT;"
  94. }
  95. .end annotation
  96. .annotation system Ldalvik/annotation/Throws;
  97. value = {
  98. Ljava/lang/Exception;
  99. }
  100. .end annotation
  101. .line 353
  102. iget-object v0, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  103. iget-object v0, v0, Lio/reactivex/subjects/UnicastSubject;->queue:Lio/reactivex/internal/queue/SpscLinkedArrayQueue;
  104. invoke-virtual {v0}, Lio/reactivex/internal/queue/SpscLinkedArrayQueue;->poll()Ljava/lang/Object;
  105. move-result-object v0
  106. return-object v0
  107. .end method
  108. .method public requestFusion(I)I
  109. .locals 2
  110. const/4 v0, 0x2
  111. and-int/2addr p1, v0
  112. if-eqz p1, :cond_0
  113. .line 345
  114. iget-object p1, p0, Lio/reactivex/subjects/UnicastSubject$UnicastQueueDisposable;->this$0:Lio/reactivex/subjects/UnicastSubject;
  115. const/4 v1, 0x1
  116. iput-boolean v1, p1, Lio/reactivex/subjects/UnicastSubject;->enableOperatorFusion:Z
  117. return v0
  118. :cond_0
  119. const/4 p1, 0x0
  120. return p1
  121. .end method