askarSessionCount function

Future<AskarResult<int>> askarSessionCount(
  1. SessionHandle handle,
  2. String category, {
  3. Map<String, dynamic>? tagFilter,
})

Implementation

Future<AskarResult<int>> askarSessionCount(
  SessionHandle handle,
  String category, {
  Map<String, dynamic>? tagFilter,
}) async {
  Pointer<Utf8> categoryPointer = nullptr;
  Pointer<Utf8> tagFilterPointer = nullptr;

  try {
    categoryPointer = category.toNativeUtf8();
    tagFilterPointer = jsonEncode(tagFilter).toNativeUtf8();

    final callback = newCallbackWithInt64();

    final result = nativeAskarSessionCount(
      handle.toInt(),
      categoryPointer,
      tagFilterPointer,
      callback.nativeCallable.nativeFunction,
      callback.id,
    );

    final callbackResult = await callback.handleResult(result);

    return AskarResult(callbackResult.errorCode, callbackResult.value);
  } finally {
    freePointer(categoryPointer);
    freePointer(tagFilterPointer);
  }
}