PumpManagerState.swift 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // PumpManagerState.swift
  3. // Loop
  4. //
  5. // Copyright © 2018 LoopKit Authors. All rights reserved.
  6. //
  7. import Foundation
  8. import LoopKit
  9. import MinimedKit
  10. import RileyLinkBLEKit
  11. import OmniKit
  12. let allPumpManagers: [String: PumpManager.Type] = [
  13. MinimedPumpManager.managerIdentifier: MinimedPumpManager.self
  14. ]
  15. func PumpManagerFromRawValue(_ rawValue: [String: Any], rileyLinkDeviceProvider: RileyLinkDeviceProvider) -> PumpManager? {
  16. guard let managerIdentifier = rawValue["managerIdentifier"] as? String,
  17. let rawState = rawValue["state"] as? PumpManager.RawStateValue
  18. else {
  19. return nil
  20. }
  21. switch (managerIdentifier) {
  22. case MinimedPumpManager.managerIdentifier:
  23. guard let state = MinimedPumpManagerState(rawValue: rawState) else {
  24. return nil
  25. }
  26. return MinimedPumpManager(state: state, rileyLinkDeviceProvider: rileyLinkDeviceProvider)
  27. case OmnipodPumpManager.managerIdentifier:
  28. guard let state = OmnipodPumpManagerState(rawValue: rawState) else {
  29. return nil
  30. }
  31. return OmnipodPumpManager(state: state, rileyLinkDeviceProvider: rileyLinkDeviceProvider)
  32. default:
  33. return nil
  34. }
  35. }
  36. extension PumpManager {
  37. var rawValue: [String: Any] {
  38. return [
  39. "managerIdentifier": type(of: self).managerIdentifier,
  40. "state": self.rawState
  41. ]
  42. }
  43. }