Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
mvw2:dev:threads [2011/06/16 08:34]
Patrick Wacker kleine tests mit UML sequence diagram
mvw2:dev:threads [2011/06/16 18:35] (aktuell)
Patrick Wacker [changedDataThread] Beschreibung vervollständigt
Zeile 3: Zeile 3:
 ===== changedDataThread ===== ===== changedDataThread =====
  
-UML Anfang der Beschreibung+Dieser Thread lauscht auf einem UDP Socket und Informiert andere Instanzen über Änderungen am Datenbestand ​
  
-Dieser Text Links vom Diagram? +Über den Slot changed() kann diesem Thread mitgeteilt werden welche Daten wie geändert wurden. Der Thread kümmert sich dann darum das alle anderen Instanzen über die Änderung informiert werden. 
-<uml>+Dies wird über das Netzwerk per UDP-Telegram erledigt.
  
-skinparam monochrome true+Ausserdem lauscht er auf einem UDP Socket auf Änderungen von anderen Instanzen und informiert über das Signal changeAt() alle Objekte die auf dieses Signal reagieren.
  
-box "MVW2 Program Instance 1" #LightBlue 
-  participant object as obj1 
-  participant changedDataThread as cdt1 
-end box 
  
-box "​MVW2 ​Program Instance 2" #LightBlue +<​uml>​ 
-  participant ​changedDataThread ​as cdt2 +'​skinparam monochrome true 
-  participant ​object ​as obj2+hide footbox 
 +title Ablauf für Informationen über geänderte Daten in der Datenbank 
 + 
 +box "​MVW2 ​Programm Instanz" #Lightcyan 
 +  participant ​Object1 ​as obj1 
 +  participant ​Object2 ​as obj2 
 +  participant Object3 as obj3 
 +  participant changedDataThread as cdt
 end box end box
  
-'box "MVW2 Network connection"​ #​LightYellow 
-' ​ participant cdt1 
-' ​ participant cdt2 
-'end box 
  
 +cdt -> cdt: load instances from database
 +activate cdt
  
-obj1->cdt1register+obj1 -> cdtconnect(cdt.changeAt(),​ this.change())
  
 +obj2 -> cdt: changed(event,​ table, ID)
  
-obj2->cdt2register+cdt -> obj1changeAt(event,​ table, ID) 
 +cdt ->​]:​changed(event,​ table, ID) 
 +note left  
 +  Info an alle andere Instanzen 
 +  über das Netzwerk 
 +end note
  
-obj1->cdt1SLOT changed(tableid)+obj2 -> cdtconnect(cdt.changeAt()this.change()
 +note left: Obj2 auch über Ändergungen Informieren
  
-group UDP Network Telegrams +cdt <-]changeAt(event, ​table, ​ID
-  cdt1->cdt2chanded(table, ​id+note leftInfo einer anderen Instanz
-  note rightSend over the Network\nas an UDP telegram +
-end +
-   +
-cdt2->​obj2:​ SIGNAL dataChanged(table,​ id)+
  
-cdt1-->​]: ​UDP dataChanged(state, table, ​id+cdt -> obj1: changed(event,​ table, ID) 
-' ​ ​note ​rightData send over the Network+cdt -> obj2: changed(event,​ table, ID) 
 + 
 +obj3 -> cdt: changed(event,​ table, ID) 
 +note left: Obj3 teilt Änderungen mit 
 +cdt -> obj1: changed(event,​ table, ID) 
 +cdt -> obj2: changed(event,​ table, ID) 
 +cdt ->​]: ​changed(event, table, ​ID
 + 
 +obj1 -> cdt: disconnect(SIGNAL,​SLOT) 
 +obj2 -> cdt: disconnect(SIGNAL,​SLOT) 
 + 
 +...Programm wird beendet... 
 + 
 +cdt -> cdt: deleteInstance 
 +note left 
 +  Instanz-Eintrag aus der 
 +  Datenbank löschen 
 +end note 
 + 
 +cdt ->]changed(delete,​ Instances, [ID]) 
 +note left 
 +  andere Instanzen über 
 +  löschung informieren  
 +end note 
 + 
 +deactivate cdt
  
 </​uml>​ </​uml>​
-wo schreibt der diesen Text? rechts??+ 
 +Details zu den SIGNALs und SLOTs siehe doxygen doku.
Projektwerkzeuge