Swiftgram/submodules/TelegramCore/TelegramCore/SourceReferenceMessageAttribute.swift
Peter 5c1613d104 Add 'submodules/TelegramCore/' from commit '9561227540acef69894e6546395ab223a6233600'
git-subtree-dir: submodules/TelegramCore
git-subtree-mainline: 971273e8f8f49a47f14b251d2f35e3445a61fc3f
git-subtree-split: 9561227540acef69894e6546395ab223a6233600
2019-06-11 18:59:08 +01:00

32 lines
1.1 KiB
Swift

import Foundation
#if os(macOS)
import PostboxMac
#else
import Postbox
#endif
public class SourceReferenceMessageAttribute: MessageAttribute {
public let messageId: MessageId
public let associatedMessageIds: [MessageId] = []
public let associatedPeerIds: [PeerId]
public init(messageId: MessageId) {
self.messageId = messageId
self.associatedPeerIds = [messageId.peerId]
}
required public init(decoder: PostboxDecoder) {
let namespaceAndId: Int64 = decoder.decodeInt64ForKey("i", orElse: 0)
self.messageId = MessageId(peerId: PeerId(decoder.decodeInt64ForKey("p", orElse: 0)), namespace: Int32(namespaceAndId & 0xffffffff), id: Int32((namespaceAndId >> 32) & 0xffffffff))
self.associatedPeerIds = [self.messageId.peerId]
}
public func encode(_ encoder: PostboxEncoder) {
let namespaceAndId = Int64(self.messageId.namespace) | (Int64(self.messageId.id) << 32)
encoder.encodeInt64(namespaceAndId, forKey: "i")
encoder.encodeInt64(self.messageId.peerId.toInt64(), forKey: "p")
}
}