ResourceSubscriber.smali 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. .class public abstract Lio/reactivex/subscribers/ResourceSubscriber;
  2. .super Ljava/lang/Object;
  3. .source "ResourceSubscriber.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 private final missedRequested:Ljava/util/concurrent/atomic/AtomicLong;
  21. .field private final resources:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  22. .field private final s:Ljava/util/concurrent/atomic/AtomicReference;
  23. .annotation system Ldalvik/annotation/Signature;
  24. value = {
  25. "Ljava/util/concurrent/atomic/AtomicReference<",
  26. "Lorg/reactivestreams/Subscription;",
  27. ">;"
  28. }
  29. .end annotation
  30. .end field
  31. # direct methods
  32. .method public constructor <init>()V
  33. .locals 1
  34. .line 37
  35. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  36. .line 39
  37. new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
  38. invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
  39. iput-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  40. .line 42
  41. new-instance v0, Lio/reactivex/internal/disposables/ListCompositeDisposable;
  42. invoke-direct {v0}, Lio/reactivex/internal/disposables/ListCompositeDisposable;-><init>()V
  43. iput-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->resources:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  44. .line 45
  45. new-instance v0, Ljava/util/concurrent/atomic/AtomicLong;
  46. invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicLong;-><init>()V
  47. iput-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->missedRequested:Ljava/util/concurrent/atomic/AtomicLong;
  48. return-void
  49. .end method
  50. # virtual methods
  51. .method public final add(Lio/reactivex/disposables/Disposable;)V
  52. .locals 1
  53. const-string v0, "resource is null"
  54. .line 55
  55. invoke-static {p1, v0}, Lio/reactivex/internal/functions/ObjectHelper;->requireNonNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
  56. .line 56
  57. iget-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->resources:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  58. invoke-virtual {v0, p1}, Lio/reactivex/internal/disposables/ListCompositeDisposable;->add(Lio/reactivex/disposables/Disposable;)Z
  59. return-void
  60. .end method
  61. .method public final dispose()V
  62. .locals 1
  63. .line 97
  64. iget-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  65. invoke-static {v0}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->cancel(Ljava/util/concurrent/atomic/AtomicReference;)Z
  66. move-result v0
  67. if-eqz v0, :cond_0
  68. .line 98
  69. iget-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->resources:Lio/reactivex/internal/disposables/ListCompositeDisposable;
  70. invoke-virtual {v0}, Lio/reactivex/internal/disposables/ListCompositeDisposable;->dispose()V
  71. :cond_0
  72. return-void
  73. .end method
  74. .method public final isDisposed()Z
  75. .locals 1
  76. .line 108
  77. iget-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  78. invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
  79. move-result-object v0
  80. check-cast v0, Lorg/reactivestreams/Subscription;
  81. invoke-static {v0}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->isCancelled(Lorg/reactivestreams/Subscription;)Z
  82. move-result v0
  83. return v0
  84. .end method
  85. .method protected onStart()V
  86. .locals 2
  87. const-wide v0, 0x7fffffffffffffffL
  88. .line 73
  89. invoke-virtual {p0, v0, v1}, Lio/reactivex/subscribers/ResourceSubscriber;->request(J)V
  90. return-void
  91. .end method
  92. .method public final onSubscribe(Lorg/reactivestreams/Subscription;)V
  93. .locals 2
  94. .line 61
  95. iget-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  96. iget-object v1, p0, Lio/reactivex/subscribers/ResourceSubscriber;->missedRequested:Ljava/util/concurrent/atomic/AtomicLong;
  97. invoke-static {v0, v1, p1}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->deferredSetOnce(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicLong;Lorg/reactivestreams/Subscription;)Z
  98. move-result p1
  99. if-eqz p1, :cond_0
  100. .line 62
  101. invoke-virtual {p0}, Lio/reactivex/subscribers/ResourceSubscriber;->onStart()V
  102. :cond_0
  103. return-void
  104. .end method
  105. .method protected final request(J)V
  106. .locals 2
  107. .line 85
  108. iget-object v0, p0, Lio/reactivex/subscribers/ResourceSubscriber;->s:Ljava/util/concurrent/atomic/AtomicReference;
  109. iget-object v1, p0, Lio/reactivex/subscribers/ResourceSubscriber;->missedRequested:Ljava/util/concurrent/atomic/AtomicLong;
  110. invoke-static {v0, v1, p1, p2}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->deferredRequest(Ljava/util/concurrent/atomic/AtomicReference;Ljava/util/concurrent/atomic/AtomicLong;J)V
  111. return-void
  112. .end method