Skip to content

Commit d29baac

Browse files
Add Store.isOpen.
1 parent a05b707 commit d29baac

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

objectbox/lib/src/native/store.dart

+12
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,18 @@ class Store {
267267
}
268268
}
269269

270+
/// Returns if an open store (i.e. opened before and not yet closed) was found
271+
/// for the given [databasePath] (or if null the [defaultDatabasePath]).
272+
static bool isOpen(String? databasePath) {
273+
final path = _safeDatabasePath(databasePath);
274+
final cStr = path.toNativeUtf8();
275+
try {
276+
return C.store_is_open(cStr.cast());
277+
} finally {
278+
malloc.free(cStr);
279+
}
280+
}
281+
270282
/// Returns a store reference you can use to create a new store instance with
271283
/// a single underlying native store. See [Store.fromReference] for more details.
272284
ByteData get reference => _reference;

objectbox/test/basics_test.dart

+9
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,15 @@ void main() {
7777
env.closeAndDelete();
7878
});
7979

80+
test('store is open', () {
81+
expect(false, Store.isOpen(''));
82+
expect(false, Store.isOpen('testdata-basics'));
83+
final env = TestEnv('basics');
84+
expect(true, Store.isOpen('testdata-basics'));
85+
env.closeAndDelete();
86+
expect(false, Store.isOpen('testdata-basics'));
87+
});
88+
8089
test('transactions', () {
8190
final env = TestEnv('basics');
8291
expect(TxMode.values.length, 2);

0 commit comments

Comments
 (0)