         print("Successfully opened connection to database.")
     }
     
-    /// Inserts or Updates the key value pair in the database in an synchronus thread safe way in background thread
+    /// Inserts or Updates the key value pair in the database in a syrialized way
     ///
     /// - parameter value: Its of type Data. This is stored as BLOB in sqlite for the unique key.
     /// - parameter key: Its a unique key which is of type `Hashable` and its also a primary key in a database

    func insert<T: Hashable>(value: Data, for key: T) throws
    func deleteValue<T: Hashable>(for key: T) throws
    func update<T: Hashable>(value: Data, for key: T) throws
    func getValue<T: Hashable>(for key: T) throws -> Data
}

public class KVStoreManager: CRUDDelegate {
    
    let db: SQLiteDatabase
    
    /// This init method would create the db file with name passed as parameter and would open the database connection. And if the file already exist it will just open the database connection.Also it would create a table in these file if its not already created.All this operations are done synchronously in background thread.
    ///
    /// - parameter fileName: The sqlite filename.     
    ///

        
    }
    
    /// Deletes the key value pair in the database in a syrialized way
    ///
    /// - parameter value: Its of type Data. This is stored as BLOB in sqlite for the unique key.
    /// - parameter key: Its a unique key which is of type `Hashable` and its also a primary key in a database
