callWithBytes method
Implementation
Future<TransactionResult> callWithBytes(
String reducerName,
Uint8List args, {
Duration? timeout,
String? requestId,
}) async {
final numericRequestId = _nextRequestId++;
SdkLogger.d(
'callWithBytes: $reducerName, numericId=$numericRequestId, uuidId=$requestId',
);
if (requestId != null) {
_requestIdByUuid[requestId] = numericRequestId;
}
final completer = Completer<TransactionResult>();
final effectiveTimeout = timeout ?? defaultTimeout;
final timer = Timer(effectiveTimeout, () {
_timeoutRequest(numericRequestId, reducerName, effectiveTimeout);
});
_pendingRequests[numericRequestId] = _PendingRequest(
completer: completer,
timeout: timer,
reducerName: reducerName,
args: args,
uuidRequestId: requestId,
);
final message = CallReducerMessage(
reducerName: reducerName,
args: args,
requestId: numericRequestId,
);
_connection.send(message.encode());
return completer.future;
}