ReplayProcessor$ReplaySubscription.smali 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. .class final Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;
  2. .super Ljava/util/concurrent/atomic/AtomicInteger;
  3. .source "ReplayProcessor.java"
  4. # interfaces
  5. .implements Lorg/reactivestreams/Subscription;
  6. # annotations
  7. .annotation system Ldalvik/annotation/EnclosingClass;
  8. value = Lio/reactivex/processors/ReplayProcessor;
  9. .end annotation
  10. .annotation system Ldalvik/annotation/InnerClass;
  11. accessFlags = 0x18
  12. name = "ReplaySubscription"
  13. .end annotation
  14. .annotation system Ldalvik/annotation/Signature;
  15. value = {
  16. "<T:",
  17. "Ljava/lang/Object;",
  18. ">",
  19. "Ljava/util/concurrent/atomic/AtomicInteger;",
  20. "Lorg/reactivestreams/Subscription;"
  21. }
  22. .end annotation
  23. # static fields
  24. .field private static final serialVersionUID:J = 0x679849349531b12L
  25. # instance fields
  26. .field final actual:Lorg/reactivestreams/Subscriber;
  27. .annotation system Ldalvik/annotation/Signature;
  28. value = {
  29. "Lorg/reactivestreams/Subscriber<",
  30. "-TT;>;"
  31. }
  32. .end annotation
  33. .end field
  34. .field volatile cancelled:Z
  35. .field index:Ljava/lang/Object;
  36. .field final requested:Ljava/util/concurrent/atomic/AtomicLong;
  37. .field final state:Lio/reactivex/processors/ReplayProcessor;
  38. .annotation system Ldalvik/annotation/Signature;
  39. value = {
  40. "Lio/reactivex/processors/ReplayProcessor<",
  41. "TT;>;"
  42. }
  43. .end annotation
  44. .end field
  45. # direct methods
  46. .method constructor <init>(Lorg/reactivestreams/Subscriber;Lio/reactivex/processors/ReplayProcessor;)V
  47. .locals 0
  48. .annotation system Ldalvik/annotation/Signature;
  49. value = {
  50. "(",
  51. "Lorg/reactivestreams/Subscriber<",
  52. "-TT;>;",
  53. "Lio/reactivex/processors/ReplayProcessor<",
  54. "TT;>;)V"
  55. }
  56. .end annotation
  57. .line 497
  58. invoke-direct {p0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
  59. .line 498
  60. iput-object p1, p0, Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;->actual:Lorg/reactivestreams/Subscriber;
  61. .line 499
  62. iput-object p2, p0, Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;->state:Lio/reactivex/processors/ReplayProcessor;
  63. .line 500
  64. new-instance p1, Ljava/util/concurrent/atomic/AtomicLong;
  65. invoke-direct {p1}, Ljava/util/concurrent/atomic/AtomicLong;-><init>()V
  66. iput-object p1, p0, Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;->requested:Ljava/util/concurrent/atomic/AtomicLong;
  67. return-void
  68. .end method
  69. # virtual methods
  70. .method public cancel()V
  71. .locals 1
  72. .line 512
  73. iget-boolean v0, p0, Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;->cancelled:Z
  74. if-nez v0, :cond_0
  75. const/4 v0, 0x1
  76. .line 513
  77. iput-boolean v0, p0, Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;->cancelled:Z
  78. .line 514
  79. iget-object v0, p0, Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;->state:Lio/reactivex/processors/ReplayProcessor;
  80. invoke-virtual {v0, p0}, Lio/reactivex/processors/ReplayProcessor;->remove(Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;)V
  81. :cond_0
  82. return-void
  83. .end method
  84. .method public request(J)V
  85. .locals 1
  86. .line 504
  87. invoke-static {p1, p2}, Lio/reactivex/internal/subscriptions/SubscriptionHelper;->validate(J)Z
  88. move-result v0
  89. if-eqz v0, :cond_0
  90. .line 505
  91. iget-object v0, p0, Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;->requested:Ljava/util/concurrent/atomic/AtomicLong;
  92. invoke-static {v0, p1, p2}, Lio/reactivex/internal/util/BackpressureHelper;->add(Ljava/util/concurrent/atomic/AtomicLong;J)J
  93. .line 506
  94. iget-object p1, p0, Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;->state:Lio/reactivex/processors/ReplayProcessor;
  95. iget-object p1, p1, Lio/reactivex/processors/ReplayProcessor;->buffer:Lio/reactivex/processors/ReplayProcessor$ReplayBuffer;
  96. invoke-interface {p1, p0}, Lio/reactivex/processors/ReplayProcessor$ReplayBuffer;->replay(Lio/reactivex/processors/ReplayProcessor$ReplaySubscription;)V
  97. :cond_0
  98. return-void
  99. .end method