Swiftgram/submodules/Postbox/Sources/PeerChatStateView.swift
2021-09-22 01:56:45 +03:00

35 lines
955 B
Swift

import Foundation
final class MutablePeerChatStateView: MutablePostboxView {
let peerId: PeerId
var chatState: PostboxCoding?
init(postbox: PostboxImpl, peerId: PeerId) {
self.peerId = peerId
self.chatState = postbox.peerChatStateTable.get(peerId)
}
func replay(postbox: PostboxImpl, transaction: PostboxTransaction) -> Bool {
if transaction.currentUpdatedPeerChatStates.contains(self.peerId) {
self.chatState = postbox.peerChatStateTable.get(self.peerId)
return true
} else {
return false
}
}
func immutableView() -> PostboxView {
return PeerChatStateView(self)
}
}
public final class PeerChatStateView: PostboxView {
public let peerId: PeerId
public let chatState: PostboxCoding?
init(_ view: MutablePeerChatStateView) {
self.peerId = view.peerId
self.chatState = view.chatState
}
}