Swiftgram/submodules/Postbox/Postbox/PostboxUpgrade_13to14.swift
Peter 4459dc5b47 Add 'submodules/Postbox/' from commit '534443c710e63ff4ea595b5dc7be94550c467734'
git-subtree-dir: submodules/Postbox
git-subtree-mainline: 373769682ef152a8d5ef41ccb064a8387b2ca6f0
git-subtree-split: 534443c710e63ff4ea595b5dc7be94550c467734
2019-06-11 18:56:39 +01:00

30 lines
1.1 KiB
Swift

import Foundation
func postboxUpgrade_13to14(metadataTable: MetadataTable, valueBox: ValueBox, progress: (Float) -> Void) {
var peerSettings: [PeerId: Data] = [:]
let peerNotificationSettingsTable = ValueBoxTable(id: 19, keyType: .int64, compactValuesOnCreation: false)
valueBox.scanInt64(peerNotificationSettingsTable, values: { key, value in
let peerId = PeerId(key)
peerSettings[peerId] = value.makeData()
return true
})
valueBox.removeAllFromTable(peerNotificationSettingsTable)
let key = ValueBoxKey(length: 8)
let buffer = WriteBuffer()
for (peerId, settings) in peerSettings {
buffer.reset()
key.setInt64(0, value: peerId.toInt64())
var flagsValue: Int32 = (1 << 0)
buffer.write(&flagsValue, offset: 0, length: 4)
var length: Int32 = Int32(settings.count)
buffer.write(&length, offset: 0, length: 4)
buffer.write(settings)
valueBox.set(peerNotificationSettingsTable, key: key, value: buffer)
}
metadataTable.setUserVersion(14)
}