find method
- {int offset: 0,
- int limit: 0}
Finds Objects matching the query.
offset
and limit
are deprecated, explicitly call
the equally named methods.
Implementation
List<T> find({int offset = 0, int limit = 0}) {
if (offset > 0) {
this.offset(offset);
}
if (limit > 0) {
this.limit(limit);
}
return store.runInTransaction(TxMode.Read, () {
if (bindings.obx_supports_bytes_array() == 1) {
final bytesArray =
checkObxPtr(bindings.obx_query_find(_cQuery), 'find');
try {
return _fbManager.unmarshalArray(bytesArray);
} finally {
bindings.obx_bytes_array_free(bytesArray);
}
} else {
final results = <T>[];
final visitor = DataVisitor((Pointer<Uint8> dataPtr, int length) {
final bytes = dataPtr.asTypedList(length);
results.add(_fbManager.unmarshal(bytes));
return true;
});
final err =
bindings.obx_query_visit(_cQuery, visitor.fn, visitor.userData);
visitor.close();
checkObx(err);
return results;
}
});
}