DisposableSubscriber.smali 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. .class public abstract Lio/reactivex/subscribers/DisposableSubscriber;
  2. .super Ljava/lang/Object;
  3. .source "DisposableSubscriber.java"
  4. # interfaces
  5. .implements Lorg/reactivestreams/Subscriber;
  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/lang/Object;",
  14. "Lorg/reactivestreams/Subscriber<",
  15. "TT;>;",
  16. "Lio/reactivex/disposables/Disposable;"
  17. }
  18. .end annotation
  19. # instance fields
  20. .field final s:Ljava/util/concurrent/atomic/AtomicReference;
  21. .annotation system Ldalvik/annotation/Signature;
  22. value = {
  23. "Ljava/util/concurrent/atomic/AtomicReference<",
  24. "Lorg/reactivestreams/Subscription;",
  25. ">;"
  26. }
  27. .end annotation
  28. .end field
  29. # direct methods
  30. .method public constructor <init>()V
  31. .locals 1
  32. .line 28
  33. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  34. .line 29
  35. new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
  36. invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
  37. iput-object v0, p0, Lio/reactivex/subscribers/DisposableSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  38. return-void
  39. .end method
  40. # virtual methods
  41. .method protected final cancel()V
  42. .locals 0
  43. .line 63
  44. invoke-virtual {p0}, Lio/reactivex/subscribers/DisposableSubscriber;->dispose()V
  45. return-void
  46. .end method
  47. .method public final dispose()V
  48. .locals 1
  49. .line 73
  50. iget-object v0, p0, Lio/reactivex/subscribers/DisposableSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  51. invoke-static {v0}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->cancel(Ljava/util/concurrent/atomic/AtomicReference;)Z
  52. return-void
  53. .end method
  54. .method public final isDisposed()Z
  55. .locals 2
  56. .line 68
  57. iget-object v0, p0, Lio/reactivex/subscribers/DisposableSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  58. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  59. move-result-object v0
  60. sget-object v1, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->CANCELLED:Lio/reactivex/internal/subscriptions/SubscriptionHelper;
  61. if-ne v0, v1, :cond_0
  62. const/4 v0, 0x1
  63. goto :goto_0
  64. :cond_0
  65. const/4 v0, 0x0
  66. :goto_0
  67. return v0
  68. .end method
  69. .method protected onStart()V
  70. .locals 3
  71. .line 42
  72. iget-object v0, p0, Lio/reactivex/subscribers/DisposableSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  73. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  74. move-result-object v0
  75. check-cast v0, Lorg/reactivestreams/Subscription;
  76. const-wide v1, 0x7fffffffffffffffL
  77. invoke-interface {v0, v1, v2}, Lorg/reactivestreams/Subscription;->request(J)V
  78. return-void
  79. .end method
  80. .method public final onSubscribe(Lorg/reactivestreams/Subscription;)V
  81. .locals 1
  82. .line 33
  83. iget-object v0, p0, Lio/reactivex/subscribers/DisposableSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  84. invoke-static {v0, p1}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->setOnce(Ljava/util/concurrent/atomic/AtomicReference;Lorg/reactivestreams/Subscription;)Z
  85. move-result p1
  86. if-eqz p1, :cond_0
  87. .line 34
  88. invoke-virtual {p0}, Lio/reactivex/subscribers/DisposableSubscriber;->onStart()V
  89. :cond_0
  90. return-void
  91. .end method
  92. .method protected final request(J)V
  93. .locals 1
  94. .line 54
  95. iget-object v0, p0, Lio/reactivex/subscribers/DisposableSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  96. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  97. move-result-object v0
  98. check-cast v0, Lorg/reactivestreams/Subscription;
  99. invoke-interface {v0, p1, p2}, Lorg/reactivestreams/Subscription;->request(J)V
  100. return-void
  101. .end method