-
Notifications
You must be signed in to change notification settings - Fork 28
Architecture: Facade classes (contexts)
Lars Toenning edited this page Oct 9, 2023
·
1 revision
- Facade for a set of domain functionality
- Smallest unit registered with DBus, hence smallest unit which can be used remotely
- Owns the DBus server (if applicable, server side) or the DBus connection (client side) -
initDBusServer
- Factory for contexts
- Loads the settings (not only for other contexts, but also DBus server)
- Connects cross context signal / slots (
initPostSetup
)
context / depends on | audio | app | network | settings | simulator | own aircraft |
---|---|---|---|---|---|---|
audio | ||||||
application | ✖ | ✖ | ✖ | ✖ | ✖ | |
network | ✖ | ✖ | ||||
settings | ✖ | ✖ | ✖ | ✖ | ✖ | |
simulator | ✖ | ✖ | ||||
own aircraft | ✖ | ✖ |
Know shortcomings:
- Cross dependencies, the ideal design goal is to have independent contexts. The idea was that each context can be enabled/disabled, but the goal was not achieved.
- DBus communication is not bidirectional. The audio context can run on core or on GUI, but the proxy/implementation object can not just be switched (at least not for peer 2 peer DBus).
- Our design was planned around the runtime/contexts. But launcher/mapping tool do not need contexts.
Keep in mind for future versions:
- We still transfer mass data (i.e. relatively large amounts of data, like all remote aircraft or models).
- Therefore we use pull to avoid overloads.
- Any future distributed objects system needs to consider that. Automatic object distribution might be fatal.
- Home
- API documentation (Doxygen generated)
- Future of swift
- Style and Coding Standard
- Release Checklist
- Build swift
- Run swift as a developer
- Knowledgebase
- External resources
- Open Research Questions
- Aviation
- Programming
- Simulation
- Architecture