Skip to content

Commit 096cb0b

Browse files
Fixed type errors in Schedulers.
Added scheduler factory.
1 parent 02ff7f7 commit 096cb0b

10 files changed

+25
-15
lines changed

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/ImplicitFunctionConversions.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ package rx.lang.scala
1717

1818
import java.lang.Exception
1919
import java.{ lang => jlang }
20-
import rx.lang.scala._
20+
//import rx.lang.scala._
2121
import rx.util.functions._
2222
import scala.collection.Seq
2323
import java.{lang => jlang}
2424
import scala.language.implicitConversions
25-
import rx.lang.scala.concurrency.Scheduler
25+
//import rx.lang.scala.Scheduler
2626

2727
/**
2828
* These function conversions convert between Scala functions and Rx `Func`s and `Action`s.
@@ -33,10 +33,10 @@ import rx.lang.scala.concurrency.Scheduler
3333
object ImplicitFunctionConversions {
3434
import language.implicitConversions
3535

36-
implicit def schedulerActionToFunc2[T](action: (Scheduler, T) => Subscription) =
36+
implicit def schedulerActionToFunc2[T](action: (Scheduler, T) => Subscription): Func2[rx.Scheduler, T, rx.Subscription] with Object {def call(s: rx.Scheduler, t: T): rx.Subscription} =
3737
new Func2[rx.Scheduler, T, rx.Subscription] {
3838
def call(s: rx.Scheduler, t: T): rx.Subscription = {
39-
action(s, t).asJavaSubscription
39+
action(rx.lang.scala.Scheduler(s), t).asJavaSubscription
4040
}
4141
}
4242

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/Scheduler.scala

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import rx.util.functions.{Action0, Action1, Func2}
2323
* Represents an object that schedules units of work.
2424
*/
2525
trait Scheduler {
26-
def asJavaScheduler: rx.Scheduler
26+
val asJavaScheduler: rx.Scheduler
2727

2828
/**
2929
* Schedules a cancelable action to be executed.
@@ -210,3 +210,12 @@ trait Scheduler {
210210

211211
}
212212

213+
object Scheduler {
214+
private [scala] def apply(scheduler: rx.Scheduler): Scheduler = {
215+
return new Scheduler() {
216+
val asJavaScheduler = scheduler
217+
}
218+
}
219+
}
220+
221+

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/Subscription.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ object Subscription {
4141

4242
import java.util.concurrent.atomic.AtomicBoolean
4343
import rx.lang.scala.subscriptions._
44-
import rx.lang.scala.Subscription
44+
4545

4646
/**
4747
* Creates an [[rx.lang.scala.Subscription]] from an [[rx.Subscription]].
@@ -52,7 +52,7 @@ object Subscription {
5252
case x: rx.subscriptions.CompositeSubscription => new CompositeSubscription(x)
5353
case x: rx.subscriptions.MultipleAssignmentSubscription => new MultipleAssignmentSubscription(x)
5454
case x: rx.subscriptions.SerialSubscription => new SerialSubscription(x)
55-
case x: rx.Subscription => Subscription { x.unsubscribe() } // add isUnsubscribed
55+
case x: rx.Subscription => Subscription { x.unsubscribe() }
5656
}
5757
}
5858

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/concurrency/CurrentThreadScheduler.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ object CurrentThreadScheduler {
2323
* Returns a [[rx.lang.scala.Scheduler]] that queues work on the current thread to be executed after the current work completes.
2424
*/
2525
def apply(): CurrentThreadScheduler = {
26-
new ImmediateScheduler(rx.concurrency.Schedulers.currentThread())
26+
new CurrentThreadScheduler(rx.concurrency.Schedulers.currentThread())
2727
}
2828
}
2929

30-
class CurrentThreadScheduler private[scala] (val asJavaScheduler: rx.concurrency.CurrentThreadScheduler)
30+
class CurrentThreadScheduler private[scala] (val asJavaScheduler: rx.Scheduler)
3131
extends Scheduler {}

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/concurrency/ExecutorScheduler.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ object ExecutorScheduler {
3131
}
3232

3333

34-
class ExecutorScheduler private[scala] (val asJavaScheduler: rx.concurrency.ExecutorScheduler)
34+
class ExecutorScheduler private[scala] (val asJavaScheduler: rx.Scheduler)
3535
extends Scheduler {}
3636

3737

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/concurrency/ImmediateScheduler.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ object ImmediateScheduler {
2727
}
2828
}
2929

30-
class ImmediateScheduler private[scala] (val asJavaScheduler: rx.concurrency.ImmediateScheduler)
30+
class ImmediateScheduler private[scala] (val asJavaScheduler: rx.Scheduler)
3131
extends Scheduler {}
3232

3333

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/concurrency/NewThreadScheduler.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,6 @@ object NewThreadScheduler {
2626
new NewThreadScheduler(rx.concurrency.Schedulers.newThread())
2727
}
2828
}
29-
class NewThreadScheduler private[scala] (val asJavaScheduler: rx.concurrency.NewThreadScheduler)
29+
30+
class NewThreadScheduler private[scala] (val asJavaScheduler: rx.Scheduler)
3031
extends Scheduler {}

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/concurrency/ScheduledExecutorServiceScheduler.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ object ScheduledExecutorServiceScheduler {
2323
/**
2424
* Returns a [[rx.lang.scala.Scheduler]] that queues work on an `java.util.concurrent.ScheduledExecutorService`.
2525
*/
26-
def apply(executor: ScheduledExecutorService): ExecutorScheduler = {
26+
def apply(executor: ScheduledExecutorService): ScheduledExecutorServiceScheduler = {
2727
new ScheduledExecutorServiceScheduler(rx.concurrency.Schedulers.executor(executor))
2828
}
2929
}

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/concurrency/ThreadPoolForComputationScheduler.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ object ThreadPoolForComputationScheduler {
2828
*
2929
* Do not perform IO-bound work on this scheduler. Use [[rx.lang.scala.concurrency.Schedulers.threadPoolForIO]] instead.
3030
*/
31-
def apply(): ExecutorScheduler = {
31+
def apply(): ThreadPoolForComputationScheduler = {
3232
new ThreadPoolForComputationScheduler(rx.concurrency.Schedulers.threadPoolForComputation())
3333
}
3434
}

language-adaptors/rxjava-scala/src/main/scala/rx/lang/scala/concurrency/ThreadPoolForIOScheduler.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ object ThreadPoolForIOScheduler {
2828
*
2929
* Do not perform computational work on this scheduler. Use [[rx.lang.scala.concurrency.Schedulers.threadPoolForComputation]] instead.
3030
*/
31-
def apply(): ExecutorScheduler = {
31+
def apply(): ThreadPoolForIOScheduler = {
3232
new ThreadPoolForIOScheduler(rx.concurrency.Schedulers.threadPoolForIO())
3333
}
3434
}

0 commit comments

Comments
 (0)