/
mutable_subscription_set_handle.dart
70 lines (61 loc) · 2.29 KB
/
mutable_subscription_set_handle.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright 2024 MongoDB, Inc.
// SPDX-License-Identifier: Apache-2.0
part of 'realm_core.dart';
class MutableSubscriptionSetHandle extends SubscriptionSetHandle {
MutableSubscriptionSetHandle._(Pointer<realm_flx_sync_mutable_subscription_set> pointer, RealmHandle root) : super._(pointer.cast(), root);
Pointer<realm_flx_sync_mutable_subscription_set> get _mutablePointer => super._pointer.cast();
SubscriptionSetHandle commit() => SubscriptionSetHandle._(invokeGetPointer(() => _realmLib.realm_sync_subscription_set_commit(_mutablePointer)), _root);
SubscriptionHandle insertOrAssignSubscription(RealmResults results, String? name, bool update) {
if (!update) {
if (name != null && findByName(name) != null) {
throw RealmException('Duplicate subscription with name: $name');
}
}
return using((arena) {
final outIndex = arena<Size>();
final outInserted = arena<Bool>();
invokeGetBool(() => _realmLib.realm_sync_subscription_set_insert_or_assign_results(
_mutablePointer,
results.handle._pointer,
name?.toCharPtr(arena) ?? nullptr,
outIndex,
outInserted,
));
return this[outIndex.value];
});
}
bool erase(Subscription subscription) {
return using((arena) {
final outErased = arena<Bool>();
invokeGetBool(() => _realmLib.realm_sync_subscription_set_erase_by_id(
_mutablePointer,
subscription.id.toNative(arena),
outErased,
));
return outErased.value;
});
}
bool eraseByName(String name) {
return using((arena) {
final outErased = arena<Bool>();
invokeGetBool(() => _realmLib.realm_sync_subscription_set_erase_by_name(
_mutablePointer,
name.toCharPtr(arena),
outErased,
));
return outErased.value;
});
}
bool eraseByResults(RealmResults results) {
return using((arena) {
final outErased = arena<Bool>();
invokeGetBool(() => _realmLib.realm_sync_subscription_set_erase_by_results(
_mutablePointer,
results.handle._pointer,
outErased,
));
return outErased.value;
});
}
void clear() => invokeGetBool(() => _realmLib.realm_sync_subscription_set_clear(_mutablePointer));
}