Updated Limbo architecture (markdown)

ljacqu 2017-03-26 21:31:24 +02:00
parent 8296cf6450
commit 8518629de8

@ -1,3 +1,19 @@
This is a technical description of how limbo players are handled. Please refer to [Limbo players](Limbo-players) for a general, non-technical description.
![](https://s30.postimg.org/i09vy2pqp/Untitled_Diagram.png)
Classes in bold are public-facing classes: these are the classes that are used outside of the limbo package to use the limbo feature. The remaining classes are used internally within the limbo package.
- **LimboPlayer** is the object with the limbo properties
- **LimboService** keeps LimboPlayer objects in memory and offers methods to the outside world
- **LimboServiceHelper** is a util to LimboService and extracts some of the longer actions
- **LimboPlayerTaskManager** is also a util to LimboService and handles most of the limbo tasks (see below)
- **LimboPersistence** is used in LimboService to read and write LimboPlayers to disk
- **LimboPersistenceHandler** is an interface with multiple implementations. The implementation that is chosen depends on the settings. The proper implementation is used within LimboPersistence to perform the actual I/O work. The used implementation in LimboPersistence is switched on each reload (new instance / new implementation if setting has changed).
### Limbo tasks
todo ljacqu
### Limbo player merge
todo ljacqu