Переглянути джерело

implement openDatabase() closeDatabase() for DcAccounts, similar to DcContext

cyberta 4 роки тому
батько
коміт
9206b94964
1 змінених файлів з 15 додано та 8 видалено
  1. 15 8
      DcCore/DcCore/DC/Wrapper.swift

+ 15 - 8
DcCore/DcCore/DC/Wrapper.swift

@@ -10,14 +10,6 @@ public class DcAccounts {
     var accountsPointer: OpaquePointer?
     var accountsPointer: OpaquePointer?
 
 
     public init() {
     public init() {
-        var version = ""
-        if let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
-            version += " " + appVersion
-        }
-
-        if let sharedDbLocation = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: applicationGroupIdentifier) {
-            accountsPointer = dc_accounts_new("iOS\(version)", sharedDbLocation.path)
-        }
     }
     }
 
 
     deinit {
     deinit {
@@ -80,6 +72,21 @@ public class DcAccounts {
         return DcAccountsEventEmitter(eventEmitterPointer: eventEmitterPointer)
         return DcAccountsEventEmitter(eventEmitterPointer: eventEmitterPointer)
     }
     }
 
 
+    public func openDatabase() {
+        var version = ""
+        if let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
+            version += " " + appVersion
+        }
+
+        if let sharedDbLocation = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: applicationGroupIdentifier) {
+            accountsPointer = dc_accounts_new("iOS\(version)", sharedDbLocation.path)
+        }
+    }
+
+    public func closeDatabase() {
+        dc_accounts_unref(accountsPointer)
+        accountsPointer = nil
+    }
 }
 }
 
 
 public class DcContext {
 public class DcContext {