Zustandsmaschinen zusammenhalten
-
Hallo!
Sagt mal, kennt ihr irgendwelche Techniken basierend auf der kreativen Ausnutzung von C++-Sprachmitteln, um den Verwaltungscode von Zustandsmaschinen im Kontext von Nachrichten-basierten Applikationen zusammenzuhalten?Ich meine zB. in GUI-Anwendungen hat man ja x Nachrichtenhandler und irgendwann wird es dann ziemlich unübersichtlich, wenn irgendwelche Zustandsvariablen hier und dort gesetzt und gelesen werden usw., obwohl der Ablauf sich eigentlich kompakt in eine Liste schreiben ließe.
Also ich wäre freudig überrascht, wenn es irgendeinen Weg gäbe, die zusammenhängende Logik nicht aufgrund von separaten Nachrichtenhandlern zerpflücken zu müssen...
-
Suchst du sowas wie
async-awaitin C#?
Oder sowas wieyield returnin C#?
Oder eher 'was wie Boost.Statechart?C++ Sprachfeature das da helfen könnte kenne ich in keinem der Fälle.
Gibt allerdgins ein async/await Proposal für C++:
http://isocpp.org/files/papers/N3858.pdf
-
Hrmmm, ja!
Es würde mich interessieren, wie Code aussähe, der dieses Muster verwendet und GUI-Events irgendwie in Waitable-Objekte übersetzt... Die Interaktion mit parallelen Operationen und das Abbrechen und Beenden klingt auch erstmal futzelig. Aber wenn man das irgendwie intuitiv gangbar bekäme, wär' das echt gut!
-
oder boost.meta_state_machine siehe: http://www.boost.org/doc/libs/1_56_0/libs/msm/doc/HTML/index.html