database property

Future<Database> get database

Database object accessor

Implementation

Future<Database> get database async {
  // If completer is null, AppDatabaseClass is newly instantiated, so database is not yet opened
  if (_dbOpenCompleter == null) {
    _dbOpenCompleter = Completer();

    // Calling _openDatabase will also complete the completer with database instance
    _openDatabase();
  }
  // If the database is already opened, awaiting the future will happen instantly.
  // Otherwise, awaiting the returned future will take some time - until complete() is called
  // on the Completer in _openDatabase() below.
  return _dbOpenCompleter!.future;
}