getInstance static method
Singleton-Getter
Implementation
static Future<MessageRepository> getInstance({
String name = _defaultDatabaseName,
}) async {
if (_instance != null) return _instance!;
DatabaseFactory factory = databaseFactory;
if (!kIsWeb &&
(Platform.isWindows || Platform.isLinux || Platform.isMacOS)) {
sqfliteFfiInit();
factory = databaseFactoryFfi;
}
final dbPath = await factory.getDatabasesPath();
final db = await factory.openDatabase(
dbPath,
options: OpenDatabaseOptions(
version: 1,
onCreate: (db, version) async {
await db.execute('''
CREATE TABLE ${Broadcast.tableName} (
${Broadcast.columnUuid} TEXT PRIMARY KEY,
${Broadcast.columnEvent} TEXT NOT NULL,
${Broadcast.columnChannel} TEXT NOT NULL,
${Broadcast.columnClientTimestamp} INTEGER NOT NULL,
${Broadcast.columnEncodedPayload} TEXT NOT NULL,
${Broadcast.columnStatus} TEXT NOT NULL,
${Broadcast.columnClientSignature} TEXT,
${Broadcast.columnServertime} INTEGER,
${Broadcast.columnSequenceId} INTEGER,
${Broadcast.columnServerSignature} TEXT
)
''');
},
),
);
_instance = MessageRepository(db);
return _instance!;
}