public void run() { while (!stop) { bearbeiteLoeschQueue(); bearbeiteAenderQueue(); try { bearbeitePushQueue(); } catch (ExceptionAutorisierung e1) { Log.writeError(e1, this.getClass()); } pushListeAbarbeitung(); try { Thread.sleep(pause); } catch (InterruptedException e) { /* * new ExceptionJavaMuss(e, * "Fred in der Queue Abarbeitung wurde aufgewacht", * Level.FINE); */ new ExceptionJavaMuss("Fred in der Queue Abarbeitung wurde aufgewacht", this.getClass()); } TafelServerInterface verbindung = getVerbindungNaechsterServer(); if (verbindung != null) { tafelServer .getAnzeigeTafel() .setGesamtNachrichtenListe( ListToArray.getListNachricht(verbindung.getGesamtNachrichtenListe())); } } }
/** * Diese Methode prüft, ob die Queue zum Ändern von Nachrichten Einträge * enthält. Ist das der Fall versucht sie bei einer stehenden Verbindung zum nächsten * Server die Queue abzuarbeiten und das Ä,ndern der Nachricht zu pushen. */ private void bearbeiteAenderQueue() { if (queues.getAenderQueue().size() <= 0) { return; } TafelServerInterface verbindung = getVerbindungNaechsterServer(); if (verbindung != null) { for (Nachricht nachricht : queues.getAenderQueue()) { verbindung.pushAendereNachricht(nachricht); } } }
/** * Diese Methode prüft, ob die Queue zum Löschen von Nachrichten Einträge * enthält. Ist das der Fall versucht sie bei einer stehenden Verbindung zum nächsten * Server die Queue abzuarbeiten und das Lö,schen der Nachricht zu pushen. */ private void bearbeiteLoeschQueue() { if (queues.getLoeschQueue().size() <= 0) { return; } TafelServerInterface verbindung = getVerbindungNaechsterServer(); if (verbindung != null) { for (UUID id : queues.getLoeschQueue()) { verbindung.pushLoescheNachricht(id); } } }
// TODO keine Ahnung, ob die Methode so funktioniert private void pushListeAbarbeitung() { if (queues.getNachrichtenListe() == null) { return; } for (UUID id : tafelServer.getAnzeigeTafel().getUntereServer()) { TafelServerInterface verbindung = tafelServer.getListeServerVerbindungen().get(id); if (verbindung != null) { verbindung.pushNachrichtenListe( ListToArray.getArrayNachricht(queues.getNachrichtenListe())); } } queues.setNachrichtenListe(null); }
/** * Diese Methode prüft, ob in der Queue für die zu pushenden Nachricht Einträge * vorhanden sind. Ist das Fall wird die Liste bei einer bestehenden Verbindung zum nächsten * Server abgearbeitet. * * @throws ExceptionAutorisierung */ private void bearbeitePushQueue() throws ExceptionAutorisierung { if (queues.getPushQueue().size() <= 0) { return; } TafelServerInterface verbindung = getVerbindungNaechsterServer(); System.out.println("Verbindung Tafel: " + verbindung); if (verbindung != null) { for (Nachricht nachricht : queues.getPushQueue()) { verbindung.addNachricht(nachricht); queues.getPushQueue().remove(nachricht); } } }