Skip to content

Commit 0dd17a9

Browse files
committed
Turn ValueObservationScheduler into a protocol
1 parent 4100b06 commit 0dd17a9

12 files changed

+117
-101
lines changed

GRDB/Core/DatabasePool.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ extension DatabasePool: DatabaseReader {
644644

645645
public func _add<Reducer: ValueReducer>(
646646
observation: ValueObservation<Reducer>,
647-
scheduling scheduler: ValueObservationScheduler,
647+
scheduling scheduler: some ValueObservationScheduler,
648648
onChange: @escaping (Reducer.Value) -> Void)
649649
-> AnyDatabaseCancellable
650650
{
@@ -675,7 +675,7 @@ extension DatabasePool: DatabaseReader {
675675
/// the writer.
676676
private func _addConcurrent<Reducer: ValueReducer>(
677677
observation: ValueObservation<Reducer>,
678-
scheduling scheduler: ValueObservationScheduler,
678+
scheduling scheduler: some ValueObservationScheduler,
679679
onChange: @escaping (Reducer.Value) -> Void)
680680
-> AnyDatabaseCancellable
681681
{

GRDB/Core/DatabaseQueue.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ extension DatabaseQueue: DatabaseReader {
294294

295295
public func _add<Reducer: ValueReducer>(
296296
observation: ValueObservation<Reducer>,
297-
scheduling scheduler: ValueObservationScheduler,
297+
scheduling scheduler: some ValueObservationScheduler,
298298
onChange: @escaping (Reducer.Value) -> Void)
299299
-> AnyDatabaseCancellable
300300
{

GRDB/Core/DatabaseReader.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ public protocol DatabaseReader: AnyObject, Sendable {
325325
/// - returns: A DatabaseCancellable that can stop the observation.
326326
func _add<Reducer: ValueReducer>(
327327
observation: ValueObservation<Reducer>,
328-
scheduling scheduler: ValueObservationScheduler,
328+
scheduling scheduler: some ValueObservationScheduler,
329329
onChange: @escaping (Reducer.Value) -> Void)
330330
-> AnyDatabaseCancellable
331331
}
@@ -584,7 +584,7 @@ extension DatabaseReader {
584584
/// initial value.
585585
func _addReadOnly<Reducer: ValueReducer>(
586586
observation: ValueObservation<Reducer>,
587-
scheduling scheduler: ValueObservationScheduler,
587+
scheduling scheduler: some ValueObservationScheduler,
588588
onChange: @escaping (Reducer.Value) -> Void)
589589
-> AnyDatabaseCancellable
590590
{
@@ -676,7 +676,7 @@ extension AnyDatabaseReader: DatabaseReader {
676676

677677
public func _add<Reducer: ValueReducer>(
678678
observation: ValueObservation<Reducer>,
679-
scheduling scheduler: ValueObservationScheduler,
679+
scheduling scheduler: some ValueObservationScheduler,
680680
onChange: @escaping (Reducer.Value) -> Void)
681681
-> AnyDatabaseCancellable
682682
{

GRDB/Core/DatabaseSnapshot.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ extension DatabaseSnapshot: DatabaseSnapshotReader {
170170

171171
public func _add<Reducer: ValueReducer>(
172172
observation: ValueObservation<Reducer>,
173-
scheduling scheduler: ValueObservationScheduler,
173+
scheduling scheduler: some ValueObservationScheduler,
174174
onChange: @escaping (Reducer.Value) -> Void)
175175
-> AnyDatabaseCancellable
176176
{

GRDB/Core/DatabaseSnapshotPool.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ extension DatabaseSnapshotPool: DatabaseSnapshotReader {
329329

330330
public func _add<Reducer>(
331331
observation: ValueObservation<Reducer>,
332-
scheduling scheduler: ValueObservationScheduler,
332+
scheduling scheduler: some ValueObservationScheduler,
333333
onChange: @escaping (Reducer.Value) -> Void)
334334
-> AnyDatabaseCancellable where Reducer: ValueReducer
335335
{

GRDB/Core/DatabaseWriter.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ extension DatabaseWriter {
531531
/// was modified.
532532
func _addWriteOnly<Reducer: ValueReducer>(
533533
observation: ValueObservation<Reducer>,
534-
scheduling scheduler: ValueObservationScheduler,
534+
scheduling scheduler: some ValueObservationScheduler,
535535
onChange: @escaping (Reducer.Value) -> Void)
536536
-> AnyDatabaseCancellable
537537
{
@@ -993,7 +993,7 @@ extension AnyDatabaseWriter: DatabaseReader {
993993

994994
public func _add<Reducer: ValueReducer>(
995995
observation: ValueObservation<Reducer>,
996-
scheduling scheduler: ValueObservationScheduler,
996+
scheduling scheduler: some ValueObservationScheduler,
997997
onChange: @escaping (Reducer.Value) -> Void)
998998
-> AnyDatabaseCancellable
999999
{

GRDB/ValueObservation/Observers/ValueConcurrentObserver.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ import Foundation
1818
/// reducing stage.
1919
///
2020
/// **Notify** is calling user callbacks, in case of database change or error.
21-
final class ValueConcurrentObserver<Reducer: ValueReducer> {
21+
final class ValueConcurrentObserver<Reducer: ValueReducer, Scheduler: ValueObservationScheduler> {
2222
// MARK: - Configuration
2323
//
2424
// Configuration is not mutable.
2525

2626
/// How to schedule observed values and errors.
27-
private let scheduler: ValueObservationScheduler
27+
private let scheduler: Scheduler
2828

2929
/// Configures the tracked database region.
3030
private let trackingMode: ValueObservationTrackingMode
@@ -141,7 +141,7 @@ final class ValueConcurrentObserver<Reducer: ValueReducer> {
141141

142142
init(
143143
dbPool: DatabasePool,
144-
scheduler: ValueObservationScheduler,
144+
scheduler: Scheduler,
145145
trackingMode: ValueObservationTrackingMode,
146146
reducer: Reducer,
147147
events: ValueObservationEvents,

GRDB/ValueObservation/Observers/ValueWriteOnlyObserver.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ import Foundation
1818
/// reducing stage.
1919
///
2020
/// **Notify** is calling user callbacks, in case of database change or error.
21-
final class ValueWriteOnlyObserver<Writer: DatabaseWriter, Reducer: ValueReducer> {
21+
final class ValueWriteOnlyObserver<Writer: DatabaseWriter, Reducer: ValueReducer, Scheduler: ValueObservationScheduler> {
2222
// MARK: - Configuration
2323
//
2424
// Configuration is not mutable.
2525

2626
/// How to schedule observed values and errors.
27-
private let scheduler: ValueObservationScheduler
27+
private let scheduler: Scheduler
2828

2929
/// Configures the tracked database region.
3030
private let trackingMode: ValueObservationTrackingMode
@@ -141,7 +141,7 @@ final class ValueWriteOnlyObserver<Writer: DatabaseWriter, Reducer: ValueReducer
141141

142142
init(
143143
writer: Writer,
144-
scheduler: ValueObservationScheduler,
144+
scheduler: Scheduler,
145145
readOnly: Bool,
146146
trackingMode: ValueObservationTrackingMode,
147147
reducer: Reducer,

GRDB/ValueObservation/SharedValueObservation.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ extension ValueObservation {
121121
/// - returns: A `SharedValueObservation`
122122
public func shared(
123123
in reader: some DatabaseReader,
124-
scheduling scheduler: ValueObservationScheduler = .async(onQueue: .main),
124+
scheduling scheduler: some ValueObservationScheduler = .async(onQueue: .main),
125125
extent: SharedValueObservationExtent = .whileObserved)
126126
-> SharedValueObservation<Reducer.Value>
127127
where Reducer: ValueReducer
@@ -168,7 +168,7 @@ extension ValueObservation {
168168
/// let cancellable2 = ValueObservation.tracking { db in ... }.shared(in: dbQueue).start(...)
169169
/// ```
170170
public final class SharedValueObservation<Element> {
171-
private let scheduler: ValueObservationScheduler
171+
private let scheduler: any ValueObservationScheduler
172172
private let extent: SharedValueObservationExtent
173173
private let startObservation: ValueObservationStart<Element>
174174
private let lock = NSRecursiveLock() // support synchronous observation events
@@ -190,7 +190,7 @@ public final class SharedValueObservation<Element> {
190190
}
191191

192192
fileprivate init(
193-
scheduling scheduler: ValueObservationScheduler,
193+
scheduling scheduler: some ValueObservationScheduler,
194194
extent: SharedValueObservationExtent,
195195
startObservation: @escaping ValueObservationStart<Element>)
196196
{

GRDB/ValueObservation/ValueObservation.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -475,7 +475,7 @@ extension ValueObservation: Refinable {
475475
/// - returns: A DatabaseCancellable that can stop the observation.
476476
public func start(
477477
in reader: some DatabaseReader,
478-
scheduling scheduler: ValueObservationScheduler = .async(onQueue: .main),
478+
scheduling scheduler: some ValueObservationScheduler = .async(onQueue: .main),
479479
onError: @escaping (Error) -> Void,
480480
onChange: @escaping (Reducer.Value) -> Void)
481481
-> AnyDatabaseCancellable
@@ -637,7 +637,7 @@ extension ValueObservation {
637637
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
638638
public func values(
639639
in reader: some DatabaseReader,
640-
scheduling scheduler: ValueObservationScheduler = .async(onQueue: .main),
640+
scheduling scheduler: some ValueObservationScheduler = .async(onQueue: .main),
641641
bufferingPolicy: AsyncValueObservation<Reducer.Value>.BufferingPolicy = .unbounded)
642642
-> AsyncValueObservation<Reducer.Value>
643643
where Reducer: ValueReducer
@@ -774,7 +774,7 @@ extension ValueObservation {
774774
@available(OSX 10.15, iOS 13, tvOS 13, watchOS 6, *)
775775
public func publisher(
776776
in reader: some DatabaseReader,
777-
scheduling scheduler: ValueObservationScheduler = .async(onQueue: .main))
777+
scheduling scheduler: some ValueObservationScheduler = .async(onQueue: .main))
778778
-> DatabasePublishers.Value<Reducer.Value>
779779
where Reducer: ValueReducer
780780
{

0 commit comments

Comments
 (0)