@@ -31,6 +31,7 @@ public protocol TopicProto: class {
3131 var lastSeen : LastSeen ? { get set }
3232 var online : Bool { get set }
3333 var cachedMessageRange : MsgRange ? { get }
34+ var missingMessageRange : MsgRange ? { get }
3435 var isArchived : Bool { get }
3536 var isJoiner : Bool { get }
3637 var isReader : Bool { get }
@@ -131,8 +132,8 @@ open class Topic<DP: Codable & Mergeable, DR: Codable & Mergeable, SP: Codable,
131132 return self
132133 }
133134 public func withEarlierData( limit: Int ? ) -> MetaGetBuilder {
134- if let r = topic. cachedMessageRange {
135- return withData ( since: nil , before: r. low != 0 ? r . low : nil , limit: limit)
135+ if let r = topic. missingMessageRange , r . low >= 1 {
136+ return withData ( since: r . lower , before: r. upper , limit: limit)
136137 }
137138 return withData ( since: nil , before: nil , limit: limit)
138139 }
@@ -366,9 +367,11 @@ open class Topic<DP: Codable & Mergeable, DR: Codable & Mergeable, SP: Codable,
366367 public var isPersisted : Bool { get { return payload != nil } }
367368
368369 public var cachedMessageRange : MsgRange ? {
369- get {
370- return store? . getCachedMessagesRange ( topic: self )
371- }
370+ return store? . getCachedMessagesRange ( topic: self )
371+ }
372+
373+ public var missingMessageRange : MsgRange ? {
374+ return store? . getNextMissingRange ( topic: self )
372375 }
373376
374377 // Tells how many topic subscribers have reported the message as read or received.
0 commit comments