SchedulerWhen.smali 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. .class public Lio/reactivex/internal/schedulers/SchedulerWhen;
  2. .super Lio/reactivex/Scheduler;
  3. .source "SchedulerWhen.java"
  4. # interfaces
  5. .implements Lio/reactivex/disposables/Disposable;
  6. # annotations
  7. .annotation system Ldalvik/annotation/MemberClasses;
  8. value = {
  9. Lio/reactivex/internal/schedulers/SchedulerWhen$OnCompletedAction;,
  10. Lio/reactivex/internal/schedulers/SchedulerWhen$DelayedAction;,
  11. Lio/reactivex/internal/schedulers/SchedulerWhen$ImmediateAction;,
  12. Lio/reactivex/internal/schedulers/SchedulerWhen$ScheduledAction;
  13. }
  14. .end annotation
  15. .annotation build Lio/reactivex/annotations/Experimental;
  16. .end annotation
  17. # static fields
  18. .field static final DISPOSED:Lio/reactivex/disposables/Disposable;
  19. .field static final SUBSCRIBED:Lio/reactivex/disposables/Disposable;
  20. # instance fields
  21. .field private final actualScheduler:Lio/reactivex/Scheduler;
  22. .field private disposable:Lio/reactivex/disposables/Disposable;
  23. .field private final workerProcessor:Lio/reactivex/processors/FlowableProcessor;
  24. .annotation system Ldalvik/annotation/Signature;
  25. value = {
  26. "Lio/reactivex/processors/FlowableProcessor<",
  27. "Lio/reactivex/Flowable<",
  28. "Lio/reactivex/Completable;",
  29. ">;>;"
  30. }
  31. .end annotation
  32. .end field
  33. # direct methods
  34. .method static constructor <clinit>()V
  35. .locals 1
  36. .line 195
  37. new-instance v0, Lio/reactivex/internal/schedulers/SchedulerWhen$3;
  38. invoke-direct {v0}, Lio/reactivex/internal/schedulers/SchedulerWhen$3;-><init>()V
  39. sput-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->SUBSCRIBED:Lio/reactivex/disposables/Disposable;
  40. .line 206
  41. invoke-static {}, Lio/reactivex/disposables/Disposables;->disposed()Lio/reactivex/disposables/Disposable;
  42. move-result-object v0
  43. sput-object v0, Lio/reactivex/internal/schedulers/SchedulerWhen;->DISPOSED:Lio/reactivex/disposables/Disposable;
  44. return-void
  45. .end method
  46. .method public constructor <init>(Lio/reactivex/functions/Function;Lio/reactivex/Scheduler;)V
  47. .locals 0
  48. .annotation system Ldalvik/annotation/Signature;
  49. value = {
  50. "(",
  51. "Lio/reactivex/functions/Function<",
  52. "Lio/reactivex/Flowable<",
  53. "Lio/reactivex/Flowable<",
  54. "Lio/reactivex/Completable;",
  55. ">;>;",
  56. "Lio/reactivex/Completable;",
  57. ">;",
  58. "Lio/reactivex/Scheduler;",
  59. ")V"
  60. }
  61. .end annotation
  62. .line 109
  63. invoke-direct {p0}, Lio/reactivex/Scheduler;-><init>()V
  64. .line 110
  65. iput-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->actualScheduler:Lio/reactivex/Scheduler;
  66. .line 112
  67. invoke-static {}, Lio/reactivex/processors/UnicastProcessor;->create()Lio/reactivex/processors/UnicastProcessor;
  68. move-result-object p2
  69. invoke-virtual {p2}, Lio/reactivex/processors/UnicastProcessor;->toSerialized()Lio/reactivex/processors/FlowableProcessor;
  70. move-result-object p2
  71. iput-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->workerProcessor:Lio/reactivex/processors/FlowableProcessor;
  72. .line 116
  73. :try_start_0
  74. iget-object p2, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->workerProcessor:Lio/reactivex/processors/FlowableProcessor;
  75. invoke-interface {p1, p2}, Lio/reactivex/functions/Function;->apply(Ljava/lang/Object;)Ljava/lang/Object;
  76. move-result-object p1
  77. check-cast p1, Lio/reactivex/Completable;
  78. invoke-virtual {p1}, Lio/reactivex/Completable;->subscribe()Lio/reactivex/disposables/Disposable;
  79. move-result-object p1
  80. iput-object p1, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->disposable:Lio/reactivex/disposables/Disposable;
  81. :try_end_0
  82. .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_0} :catch_0
  83. goto :goto_0
  84. :catch_0
  85. move-exception p1
  86. .line 118
  87. invoke-static {p1}, Lio/reactivex/exceptions/Exceptions;->propagate(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
  88. :goto_0
  89. return-void
  90. .end method
  91. # virtual methods
  92. .method public createWorker()Lio/reactivex/Scheduler$Worker;
  93. .locals 4
  94. .line 134
  95. iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->actualScheduler:Lio/reactivex/Scheduler;
  96. invoke-virtual {v0}, Lio/reactivex/Scheduler;->createWorker()Lio/reactivex/Scheduler$Worker;
  97. move-result-object v0
  98. .line 137
  99. invoke-static {}, Lio/reactivex/processors/UnicastProcessor;->create()Lio/reactivex/processors/UnicastProcessor;
  100. move-result-object v1
  101. invoke-virtual {v1}, Lio/reactivex/processors/UnicastProcessor;->toSerialized()Lio/reactivex/processors/FlowableProcessor;
  102. move-result-object v1
  103. .line 139
  104. new-instance v2, Lio/reactivex/internal/schedulers/SchedulerWhen$1;
  105. invoke-direct {v2, p0, v0}, Lio/reactivex/internal/schedulers/SchedulerWhen$1;-><init>(Lio/reactivex/internal/schedulers/SchedulerWhen;Lio/reactivex/Scheduler$Worker;)V
  106. invoke-virtual {v1, v2}, Lio/reactivex/processors/FlowableProcessor;->map(Lio/reactivex/functions/Function;)Lio/reactivex/Flowable;
  107. move-result-object v2
  108. .line 153
  109. new-instance v3, Lio/reactivex/internal/schedulers/SchedulerWhen$2;
  110. invoke-direct {v3, p0, v0, v1}, Lio/reactivex/internal/schedulers/SchedulerWhen$2;-><init>(Lio/reactivex/internal/schedulers/SchedulerWhen;Lio/reactivex/Scheduler$Worker;Lio/reactivex/processors/FlowableProcessor;)V
  111. .line 189
  112. iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->workerProcessor:Lio/reactivex/processors/FlowableProcessor;
  113. invoke-virtual {v0, v2}, Lio/reactivex/processors/FlowableProcessor;->onNext(Ljava/lang/Object;)V
  114. return-object v3
  115. .end method
  116. .method public dispose()V
  117. .locals 1
  118. .line 124
  119. iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->disposable:Lio/reactivex/disposables/Disposable;
  120. invoke-interface {v0}, Lio/reactivex/disposables/Disposable;->dispose()V
  121. return-void
  122. .end method
  123. .method public isDisposed()Z
  124. .locals 1
  125. .line 129
  126. iget-object v0, p0, Lio/reactivex/internal/schedulers/SchedulerWhen;->disposable:Lio/reactivex/disposables/Disposable;
  127. invoke-interface {v0}, Lio/reactivex/disposables/Disposable;->isDisposed()Z
  128. move-result v0
  129. return v0
  130. .end method