Swiftgram/Postbox/OrderedContactsView.swift
Peter e9a40ac1b4 Fixed tests
More efficient legacy sqlite interface
2018-10-06 01:17:08 +04:00

48 lines
1.4 KiB
Swift

import Foundation
final class MutableOrderedContactsView: MutablePostboxView {
fileprivate let id: UInt32
fileprivate var version: Int32 = 0
fileprivate var updatedPresences: [PeerId: PeerPresence] = [:]
fileprivate var updatedPeers: [Peer] = []
init(postbox: Postbox) {
self.id = postbox.takeNextUniqueId()
for peerId in postbox.contactsTable.get() {
if let peer = postbox.peerTable.get(peerId) {
self.updatedPeers.append(peer)
if let presence = postbox.peerPresenceTable.get(peerId) {
self.updatedPresences[peerId] = presence
}
}
}
}
func replay(postbox: Postbox, transaction: PostboxTransaction) -> Bool {
if !transaction.currentUpdatedPeerPresences.isEmpty {
}
return false
}
func immutableView() -> PostboxView {
return OrderedContactsView(self)
}
}
public final class OrderedContactsView: PostboxView {
public let id: UInt32
public let version: Int32
public let updatedPresences: [PeerId: PeerPresence]
public let updatedPeers: [Peer]
init(_ view: MutableOrderedContactsView) {
self.id = view.id
self.version = view.version
self.updatedPresences = view.updatedPresences
self.updatedPeers = view.updatedPeers
}
}