Implementierung des Beobachter-Musters (Observer) mit Prioritätsunterstützung und Filterung
Aufgabe «Implementierung des Beobachter-Musters (Observer) mit Prioritätsunterstützung und Filterung»
Eingabeformat
Eine Folge von Befehlen, jeder in einer separaten Zeile. Befehle: subscribe <Ereignis> <Priorität> [Filter], unsubscribe <ID>, publish <Ereignis> <Daten>. Für subscribe: Ereignis — Zeichenkette, Priorität — ganze Zahl, Filter — optionale Zeichenkette mit Filtercode (z. B. 'data>5'). Für publish: Ereignis — Zeichenkette, Daten — JSON-Wert (Zahl, Zeichenkette, Objekt).
Ausgabeformat
Für jeden publish-Befehl wird das Ergebnis der Handler-Aufrufe in der Reihenfolge ihres Aufrufs ausgegeben: eine Zeile der Form 'Handler <ID> called with <Daten>', jede in einer neuen Zeile. Wenn es keine Handler gibt: 'No handlers'. Fehler von Handlern werden ignoriert, aber ihre Meldungen werden auf der Konsole ausgegeben (in den Tests nicht überprüft).