mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-25 04:25:21 +00:00
28 lines
1.0 KiB
Swift
28 lines
1.0 KiB
Swift
import Foundation
|
|
|
|
enum BLEPacketFreshnessPolicy {
|
|
static let defaultMaxAgeSeconds: TimeInterval = 900
|
|
|
|
static func isBroadcastRecipient(_ recipientID: Data?) -> Bool {
|
|
guard let recipientID else { return true }
|
|
return recipientID.count == 8 && recipientID.allSatisfy { $0 == 0xFF }
|
|
}
|
|
|
|
static func isStale(
|
|
timestampMilliseconds: UInt64,
|
|
now: Date,
|
|
maxAgeSeconds: TimeInterval = defaultMaxAgeSeconds
|
|
) -> Bool {
|
|
let nowMilliseconds = UInt64(now.timeIntervalSince1970 * 1000)
|
|
let maxAgeMilliseconds = UInt64(maxAgeSeconds * 1000)
|
|
guard nowMilliseconds >= maxAgeMilliseconds else { return false }
|
|
return timestampMilliseconds < nowMilliseconds - maxAgeMilliseconds
|
|
}
|
|
|
|
static func ageSeconds(timestampMilliseconds: UInt64, now: Date) -> Double {
|
|
let nowMilliseconds = UInt64(now.timeIntervalSince1970 * 1000)
|
|
guard nowMilliseconds >= timestampMilliseconds else { return 0 }
|
|
return Double(nowMilliseconds - timestampMilliseconds) / 1000.0
|
|
}
|
|
}
|