Universe Manager
New Do will be a receiver, not a Kreator. UniverseManager will essentially be a caching proxy for an IPC universe manager which will receive items from application providers. For the sake of simplicity this blueprint will refer to the d-bus universe manager, and tomboy will be our example provider. All concepts should be applicable for other applications, and other IPC universe managers. Since it's unlikely that lots of applications will want to commit Do specific code to their trees, there will be two wrapper libraries around the dbus api. One for C#, one for gobject. gobject introspection will then be used to generate vala, python, js, and whatever other bindings gobject will give us. These wrappers will contain the code to make stand alone plugins that run in their own processes and talk to Do via dbus.
Base Universe Manager:
Will wrap the IPC service and provide caching so that we don't need to call over dbus every time we need to know something about an item. Instead of searching the IPC manager's items from each provider, it will keep its own internal data structures built from the providers. Searching will happen on Base manager's collections.
IPC Universe managers:
IPC managers will essentially be proxies that take the items from the ipc bus, and stick them into Do's internal item types and sources. These shouldn't really do any record keeping themselves but should primarily just be proxies to give Base Universe Manager items, and tell it when to remove items.
Example:
Do loads, we're on linux so we load the DBusUniverseManager as the IUniverseManager service. This get's passed into the base UniverseManager and wrapped. UniverseManager will query the DBusUniverseManager for all of its providers Items, and listen to added/removed signals. When something is needed from a provider, it will be asked for from the DBusUniverseMan
Blueprint information
- Status:
- Started
- Approver:
- Do Core Team
- Priority:
- Essential
- Drafter:
- Alex Launi
- Direction:
- Needs approval
- Assignee:
- Do Core Team
- Definition:
- Discussion
- Series goal:
- Accepted for rewrite
- Implementation:
- Needs Infrastructure
- Milestone target:
- 0.99.0
- Started by
- Alex Launi
- Completed by