@@ -55,7 +55,11 @@ struct PCKRevisionRecord: ParseObject, Equatable, Codable {
55
55
}
56
56
}
57
57
58
- public var vector : String ?
58
+ var vector : String ?
59
+
60
+ var storeClassesToSynchronize : [ PCKStoreClass : any PCKVersionable . Type ] ? = try ? PCKStoreClass . getConcrete ( )
61
+
62
+ var customClassesToSynchronize : [ String : any PCKVersionable . Type ] ?
59
63
60
64
var objects : [ any PCKVersionable ] {
61
65
guard let entities = entities else {
@@ -112,6 +116,13 @@ struct PCKRevisionRecord: ParseObject, Equatable, Codable {
112
116
logicalClock, clock, clockUUID
113
117
}
114
118
119
+ static func == ( lhs: PCKRevisionRecord , rhs: PCKRevisionRecord ) -> Bool {
120
+ lhs. vector == rhs. vector &&
121
+ lhs. logicalClock == rhs. logicalClock &&
122
+ lhs. objectId == rhs. objectId &&
123
+ lhs. entities == rhs. entities
124
+ }
125
+
115
126
func convertToCareKit( ) throws -> OCKRevisionRecord {
116
127
guard let entities = entities,
117
128
let knowledgeVector = knowledgeVector else {
@@ -246,13 +257,17 @@ extension PCKRevisionRecord {
246
257
init ( record: OCKRevisionRecord ,
247
258
remoteClockUUID: UUID ,
248
259
remoteClock: PCKClock ,
249
- remoteClockValue: Int ) throws {
260
+ remoteClockValue: Int ,
261
+ storeClassesToSynchronize: [ PCKStoreClass : any PCKVersionable . Type ] ? = nil ,
262
+ customClassesToSynchronize: [ String : any PCKVersionable . Type ] ? = nil ) throws {
250
263
self . objectId = UUID ( ) . uuidString
251
264
self . ACL = PCKUtility . getDefaultACL ( )
252
265
self . clockUUID = remoteClockUUID
253
266
self . logicalClock = remoteClockValue
254
267
self . clock = remoteClock
255
268
self . knowledgeVector = record. knowledgeVector
269
+ self . storeClassesToSynchronize = storeClassesToSynchronize
270
+ self . customClassesToSynchronize = customClassesToSynchronize
256
271
self . entities = try record. entities. compactMap { entity in
257
272
var parseEntity = try entity. parseEntity ( ) . value
258
273
parseEntity. logicalClock = remoteClockValue // Stamp Entity
0 commit comments