@@ -3,7 +3,7 @@ import Foundation
33
44final class PowerSyncDatabaseImpl : PowerSyncDatabaseProtocol {
55 let logger : any LoggerProtocol
6- let syncCoordinator = SyncCoordinator ( )
6+ let group : ActiveDatabaseGroup
77 let syncStatus = SwiftSyncStatus ( )
88 private let dbFilename : String ?
99 private let httpClient : HttpClient
@@ -13,6 +13,8 @@ final class PowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
1313
1414 init (
1515 dbFilename: String ? = nil ,
16+ identifier: String ,
17+ activeInstanceStore: DatabaseGroupCollection = . shared,
1618 logger: any LoggerProtocol ,
1719 pool: any SQLiteConnectionPoolProtocol ,
1820 httpClient: HttpClient ,
@@ -23,14 +25,15 @@ final class PowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
2325 self . schema = AsyncMutex ( schema)
2426 self . httpClient = httpClient
2527 self . queries = ConnectionPoolQueries ( pool: pool)
28+ self . group = activeInstanceStore. referenceGroup ( identifier: identifier, logger: logger)
2629 }
27-
30+
2831 var currentStatus : any SyncStatus {
2932 syncStatus
3033 }
3134
3235 func resolveOfflineSyncStatusIfNotConnected( ) async throws {
33- try await syncCoordinator. guardNotConnected ( inner: {
36+ try await group . syncCoordinator. guardNotConnected ( inner: {
3437 try await resolveOfflineSyncStatus ( )
3538 } , ifConnected: { } )
3639 }
@@ -56,7 +59,7 @@ final class PowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
5659
5760 func updateSchema( schema: any SchemaProtocol ) async throws {
5861 try await initializer. ensureInitialized ( db: self )
59- try await syncCoordinator. guardNotConnected (
62+ try await group . syncCoordinator. guardNotConnected (
6063 inner: {
6164 let schema = Schema ( other: schema)
6265 await self . schema. withMutex { $0 = schema }
@@ -99,7 +102,7 @@ final class PowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
99102 }
100103
101104 func disconnect( ) async throws {
102- await syncCoordinator. disconnect ( )
105+ await group . syncCoordinator. disconnect ( )
103106 }
104107
105108 func syncStream( name: String , params: JsonParam ? ) -> any SyncStream {
@@ -109,7 +112,7 @@ final class PowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
109112 func close( ) async throws {
110113 try await initialize ( )
111114 try await initializer. close {
112- await syncCoordinator. disconnect ( )
115+ await group . syncCoordinator. disconnect ( )
113116 try await queries. pool. close ( )
114117 }
115118 }
@@ -124,12 +127,12 @@ final class PowerSyncDatabaseImpl: PowerSyncDatabaseProtocol {
124127 }
125128
126129 func connect( connector: any PowerSyncBackendConnectorProtocol , options: ConnectOptions ? ) async throws {
127- await syncCoordinator. connect ( db: self , connector: connector, options: options ?? ConnectOptions ( ) , client: httpClient)
130+ await group . syncCoordinator. connect ( db: self , connector: connector, options: options ?? ConnectOptions ( ) , client: httpClient)
128131 }
129132
130133 func disconnectAndClear( clearLocal: Bool , soft: Bool ) async throws {
131134 try await initialize ( )
132- try await syncCoordinator. disconnectAndThen {
135+ try await group . syncCoordinator. disconnectAndThen {
133136 var flags = 0
134137 if clearLocal {
135138 flags |= 1
0 commit comments