You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SessionMessagingKit/Configuration.swift

46 lines
1.8 KiB
Swift

import SessionProtocolKit
4 years ago
@objc(SNMessagingKitConfiguration)
public final class Configuration : NSObject {
public let storage: SessionMessagingKitStorageProtocol
4 years ago
@objc public let signalStorage: SessionStore & PreKeyStore & SignedPreKeyStore
4 years ago
public let identityKeyStore: IdentityKeyStore
public let sessionRestorationImplementation: SessionRestorationProtocol
public let certificateValidator: SMKCertificateValidator
4 years ago
@objc public static var shared: Configuration!
fileprivate init(
storage: SessionMessagingKitStorageProtocol,
signalStorage: SessionStore & PreKeyStore & SignedPreKeyStore,
identityKeyStore: IdentityKeyStore,
sessionRestorationImplementation: SessionRestorationProtocol,
certificateValidator: SMKCertificateValidator
) {
self.storage = storage
self.signalStorage = signalStorage
self.identityKeyStore = identityKeyStore
self.sessionRestorationImplementation = sessionRestorationImplementation
self.certificateValidator = certificateValidator
}
}
public enum SNMessagingKit { // Just to make the external API nice
4 years ago
public static func configure(
storage: SessionMessagingKitStorageProtocol,
signalStorage: SessionStore & PreKeyStore & SignedPreKeyStore,
identityKeyStore: IdentityKeyStore,
sessionRestorationImplementation: SessionRestorationProtocol,
4 years ago
certificateValidator: SMKCertificateValidator
4 years ago
) {
Configuration.shared = Configuration(
storage: storage,
signalStorage: signalStorage,
identityKeyStore: identityKeyStore,
sessionRestorationImplementation: sessionRestorationImplementation,
4 years ago
certificateValidator: certificateValidator
4 years ago
)
}
}