chenqiyang
2021-08-20 7b95fb4d4549d3452ee17165236186afc1f2b393
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
//
//  ConfigManager.swift
//  VoipTest
//
//  Created by StevStark on 2020/11/11.
//
 
import Foundation
//import linphonesw
 
/*
* ConfigManager is a class that manipulates the configuration of the application.
* There is only one ConfigManager by calling ConfigManager.instance().
*/
@objc class HDLConfigManager: NSObject {
    static var theConfigManager: HDLConfigManager?
    var config: Config?
    let applicationKey = "app"
 
    @objc static func instance() -> HDLConfigManager {
        if (theConfigManager == nil) {
            theConfigManager = HDLConfigManager()
        }
        return theConfigManager!
    }
 
    @objc func setDb(db:OpaquePointer) {
        config = Config.getSwiftObject(cObject: db)
    }
 
    //pragma mark - LPConfig Functions
    @objc func lpConfigSetString(value:String, key:String, section:String) {
        if (!key.isEmpty) {
            config?.setString(section: section, key: key, value: value)
        }
    }
 
    @objc func lpConfigSetString(value:String, key:String) {
        lpConfigSetString(value: value, key: key, section: applicationKey)
    }
 
    @objc func lpConfigStringForKey(key:String, section:String, defaultValue:String) -> String {
        if (key.isEmpty) {
            return defaultValue
        }
        return config?.getString(section: section, key: key, defaultString: "") ?? defaultValue
    }
 
    @objc func lpConfigStringForKey(key:String, section:String) -> String {
        return lpConfigStringForKey(key: key, section: section, defaultValue: "")
    }
 
    @objc func lpConfigStringForKey(key:String, defaultValue:String) -> String {
        return lpConfigStringForKey(key: key, section: applicationKey, defaultValue: defaultValue)
    }
 
    @objc func lpConfigStringForKey(key:String) -> String {
        return lpConfigStringForKey(key: key, defaultValue: "")
    }
 
    @objc func lpConfigSetInt(value:Int, key:String, section:String) {
        if(!key.isEmpty) {
            config?.setInt(section: section, key: key, value: value)
        }
    }
 
    @objc func lpConfigSetInt(value:Int, key:String) {
        lpConfigSetInt(value: value, key: key, section: applicationKey)
    }
 
    @objc func lpConfigIntForKey(key:String, section:String, defaultValue:Int) -> Int {
        if (key.isEmpty) {
            return defaultValue
        }
        return config?.getInt(section: section, key: key, defaultValue: defaultValue) ?? defaultValue
    }
 
    @objc func lpConfigIntForKey(key:String, section:String) -> Int {
        return lpConfigIntForKey(key: key, section: section, defaultValue: -1)
    }
 
    @objc func lpConfigIntForKey(key:String, defaultValue:Int) -> Int {
        return lpConfigIntForKey(key: key, section: applicationKey, defaultValue: defaultValue)
    }
 
    @objc func lpConfigIntForKey(key:String) -> Int {
        return lpConfigIntForKey(key: key, defaultValue: -1)
    }
 
    @objc func lpConfigSetBool(value:Bool, key:String, section:String) {
        lpConfigSetInt(value: value ? 1:0, key: key, section: section)
    }
 
    @objc func lpConfigSetBool(value:Bool, key:String) {
        lpConfigSetBool(value: value, key: key, section: applicationKey)
    }
 
    @objc func lpConfigBoolForKey(key:String, section:String, defaultValue:Bool) -> Bool {
        if (key.isEmpty) {
            return defaultValue
        }
        let val = lpConfigIntForKey(key: key, section: section, defaultValue: -1)
        return (val != -1) ? (val == 1) : defaultValue
    }
 
    @objc func lpConfigBoolForKey(key:String, section:String) -> Bool {
        return lpConfigBoolForKey(key: key, section: section, defaultValue: false)
    }
 
    @objc func lpConfigBoolForKey(key:String, defaultValue:Bool) -> Bool {
        return lpConfigBoolForKey(key: key, section: applicationKey, defaultValue: defaultValue)
    }
 
    @objc func lpConfigBoolForKey(key:String) -> Bool {
        return lpConfigBoolForKey(key: key, defaultValue: false)
    }
}