aui
aui copied to clipboard
ADBus refactor
- lacks session bus/system bus
- lacks proper signal handling
#388
New property system is handy here; we can implement dbus properties with aui properties.
1. thread safe
2. many-to-many relationships between objects
3. optional data modification when passing values between objects (like STL projections)
4. emitter can be either signal or property
5. slot can be either lambda, method or property
6. for the latter case, system must set up backward connection as well (including projection support)
7. again, for the latter case, there's an option to make property-to-slot connection, where the "slot" is property's
assignment operation
8. 2 syntax variants: procedural (straightforward) and declarative
9. three property variants: simple field ([AProperty](https://aui-framework.github.io/develop/structAProperty.html)), custom getter/setter ([APropertyDef](https://aui-framework.github.io/develop/structAPropertyDef.html)) and custom evaluation ([APropertyPrecomputed](https://aui-framework.github.io/develop/structAPropertyPrecomputed.html))
10. some properties can be readonly
11. propagating strong types' traits on views
+12. Inter Process Communication
@Nelonn pointed out that libgdbus (which is a reference implementation of dbus), used by AUI, is published under GPL license, which carries legal risks for our project. Full MPL2-compatible solution is needed, suitable for proprietary software based on AUI.