trackPayload method

Future<void> trackPayload(
  1. Map<String, dynamic> payload
)

Track a raw telemetry payload

Implementation

Future<void> trackPayload(Map<String, dynamic> payload) async {
  if (!_isInitialized || _managerPtr == null) return;

  try {
    final lib = PlatformLoader.loadCommons();
    final trackFn = lib.lookupFunction<
        Int32 Function(Pointer<Void>, Pointer<Utf8>),
        int Function(Pointer<Void>,
            Pointer<Utf8>)>('rac_telemetry_manager_track_json');

    final jsonStr = jsonEncode(payload);
    final jsonPtr = jsonStr.toNativeUtf8();

    try {
      trackFn(_managerPtr!, jsonPtr);
    } finally {
      calloc.free(jsonPtr);
    }
  } catch (e) {
    _logger.debug('trackPayload error: $e');
  }
}