Do

Universe Manager

Registered by Alex Launi

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 DBusUniverseManager, by the base universe manager.

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:
milestone icon 0.99.0
Started by
Alex Launi

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.