import 'dart:async'; import 'package:core/models/common.dart'; import 'package:core/utils/logging.dart'; abstract class SignalrService { Future? start(); Future stop(); StreamSubscription onClose(Function(Exception?) listen, { bool Function(Exception?)? filter}); StreamSubscription onReconnecting(Function(Exception?) listen, { bool Function(Exception?)? filter}); StreamSubscription onReconnected(Function(String?) listen, { bool Function(String?)? filter}); Stream subscribe(String methodName); void unsubscribe(String methodName); Future send(String methodName, { List? args }); Future invoke(String methodName, { List? args }); } class NullSignalrService extends SignalrService { @override Future invoke(String methodName, {List? args}) { logger.warn('signalr - invoke method not implemented!'); return Future.value(); } @override StreamSubscription onClose(Function(Exception? p1) listen, {bool Function(Exception? p1)? filter}) { logger.warn('signalr - onClose method not implemented!'); Exception? nullValue; return Stream.value(nullValue).listen(logger.debug); } @override StreamSubscription onReconnected(Function(String? p1) listen, {bool Function(String? p1)? filter}) { logger.warn('signalr - onReconnected method not implemented!'); String? nullValue; return Stream.value(nullValue).listen(logger.debug); } @override StreamSubscription onReconnecting(Function(Exception? p1) listen, {bool Function(Exception? p1)? filter}) { logger.warn('signalr - onReconnecting method not implemented!'); Exception? nullValue; return Stream.value(nullValue).listen(logger.debug); } @override Future send(String methodName, {List? args}) { logger.warn('signalr - send method not implemented!'); return Future.value(); } @override Future? start() { logger.warn('signalr - start method not implemented!'); return Future.value(); } @override Future stop() { logger.warn('signalr - stop method not implemented!'); return Future.value(); } @override Stream subscribe(String methodName) { logger.warn('signalr - subscribe method not implemented!'); return Stream.value(SignalrMessage(methodName, [])); } @override void unsubscribe(String methodName) { logger.warn('signalr - unsubscribe method not implemented!'); } }