initBackend<TDataType> method

  1. @protected
Future<void> initBackend<TDataType>(
  1. Creator<TDataType> creator, {
  2. required Type backendType,
  3. TDataType? data,
  4. ErrorHandler? errorHandler,
  5. String uniqueId = '',
  6. bool isMessageBus = false,
})

Method for creating backend of this frontend state

Implementation

@protected
Future<void> initBackend<TDataType>(
  Creator<TDataType> creator, {
  required Type backendType,
  TDataType? data,
  ErrorHandler? errorHandler,
  String uniqueId = '',
  bool isMessageBus = false,
}) async {
  if (uniqueId.isEmpty) {
    _id = Isolator.generateBackendId(backendType);
  } else {
    _id = uniqueId;
  }
  final _Communicator<TEvent, Object?> communicator = await Isolator.isolate<TEvent, Object?, TDataType>(
    creator,
    _id,
    isolatorData: IsolatorData(data, IsolatorConfig._instance),

    /// Error handler is a function for handle errors from backend on frontend (prefer to handle errors on backend)
    errorHandler: errorHandler ?? onError,
    isMessageBus: isMessageBus,
  );
  _toBackend = communicator.toBackend;
  _fromBackend = communicator.fromBackend;
  await _subscription?.cancel();
  _subscription = _fromBackend.asBroadcastStream().listen(_backendResponseRawHandler);
  _isInitialized = true;
}