Erweiterungen und cleanup
This commit is contained in:
1 parent
def0f3fc2f
commit
38f5d374b2
15 files changed
+9
-119
No files matched your search
@@ -1,78 +0,0 @@
|
||||
import 'dart:async';
|
||||
|
||||
//typedef EventHandler<T> = void Function(T args);
|
||||
|
||||
/*class _MapEntry {
|
||||
late dynamic owner;
|
||||
|
||||
late dynamic handler;
|
||||
}
|
||||
|
||||
class MessageService {
|
||||
static final MessageService _singleton = MessageService._internal();
|
||||
|
||||
final Map<String, Set<_MapEntry>> _callbackMaps = <String, Set<_MapEntry>>{};
|
||||
|
||||
factory MessageService() {
|
||||
return _singleton;
|
||||
}
|
||||
|
||||
MessageService._internal();
|
||||
|
||||
subscribe<T>(String topic, dynamic owner, EventHandler<T>? handler) {
|
||||
var entry = _MapEntry();
|
||||
entry.owner = owner;
|
||||
entry.handler = handler;
|
||||
|
||||
if (_callbackMaps.containsKey(topic)) {
|
||||
_callbackMaps[topic]!.remove(entry);
|
||||
_callbackMaps[topic]!.add(entry);
|
||||
} else {
|
||||
_callbackMaps[topic] = <_MapEntry>{};
|
||||
_callbackMaps[topic]!.add(entry);
|
||||
}
|
||||
}
|
||||
|
||||
unsubscribe<T>(String topic, dynamic owner) {
|
||||
if (_callbackMaps.containsKey(topic)) {
|
||||
for (var entry in _callbackMaps[topic]!) {
|
||||
if (entry.owner == owner) {
|
||||
_callbackMaps[topic]!.remove(entry);
|
||||
|
||||
unsubscribe(topic, owner);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unsubscribeAll<T>(dynamic owner) {
|
||||
for (var callbackMapsEntry in _callbackMaps.entries) {
|
||||
for (var entry in callbackMapsEntry.value.toList()) {
|
||||
if (entry.owner == owner) {
|
||||
_callbackMaps[callbackMapsEntry.key]!.remove(entry);
|
||||
|
||||
unsubscribeAll(owner);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
publish<T>(String topic, {T? arguments}) async {
|
||||
Completer<void> completer = Completer();
|
||||
var entries = _callbackMaps[topic];
|
||||
|
||||
if (entries != null) {
|
||||
for (var entry in entries) {
|
||||
entry.handler(arguments);
|
||||
}
|
||||
|
||||
completer.complete();
|
||||
}
|
||||
|
||||
await completer.future;
|
||||
}
|
||||
}*/
|
||||
@@ -28,16 +28,12 @@ import 'package:stadtbote/protocoll_messages/status_info_update.dart';
|
||||
import 'package:stadtbote/protocoll_messages/sync_jobs_message.dart';
|
||||
import 'package:stadtbote/protocoll_messages/track_message.dart';
|
||||
import 'package:stadtbote/tools/connection_status.dart';
|
||||
import 'package:stadtbote/tools/message_service.dart';
|
||||
import 'package:stadtbote/tools/messages/publish_payload_message.dart';
|
||||
import 'package:stadtbote/tools/messages/connect_client_message.dart';
|
||||
import 'package:stadtbote/tools/messages/current_connection_status_message.dart';
|
||||
import 'package:stadtbote/tools/messages/disconnect_client_message.dart';
|
||||
import 'package:stadtbote/tools/messages/job_deleted_message.dart';
|
||||
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
||||
import 'package:stadtbote/tools/messages/message_message.dart';
|
||||
import 'package:stadtbote/tools/messages/ranking_updated.dart';
|
||||
import 'package:stadtbote/tools/messages/request_connection_status_message.dart';
|
||||
import 'package:stadtbote/tools/messages/session_info_update.dart';
|
||||
import 'package:stadtbote/tools/messages/status_info_update.dart';
|
||||
|
||||
|
||||
Reference in new issue
Block a user