Warning, /sdk/dferry/plan.txt is written in an unsupported language. File is not indexed.
0001 Hardest parts: 0002 - Connections 0003 - Interface to the data structures (map, struct, array) 0004 - Do it like QDBusArgument: doesn't need any non-primitive data types, very binding-friendly 0005 - Multithreading - need to talk to Thiago 0006 - Well-defined names, special names: might be really easy, might be surprisingly hard / ugly 0007 - Server 0008 - Dispatching messages to/from interfaces, (interface registration?) 0009 0010 Other stuff: 0011 - Build system 0012 - Serialization, probably not hard 0013 - Authentication 0014 - Event loop integration. Easy enough at least with Qt on Linux because epoll() is only available 0015 on Linux. An epoll set has a file descriptor, so it can be watched like a file using a single 0016 QSocketNotifier which then tells d-sel that something happened. d-sel then uses epoll() the 0017 usual way to find out which file or socket is ready for reading or writing. 0018 0019 Some ideas for classes: 0020 - Message 0021 - Connection 0022 - Interface? 0023 - Address? 0024 - Path? 0025 - Authenticator or AuthenticationMethod 0026 0027 Scope (aka for now: features not planned): 0028 - probably not in scope: code generator for the XML interface description format 0029 because it needs to work against the consumer API (Qt, GLib, ?) 0030 0031 Need to implement (server) / talk to (client) the following bus-owned methods: 0032 org.freedesktop.DBus.Hello 0033 org.freedesktop.DBus.ListNames 0034 org.freedesktop.DBus.ListActivatableNames 0035 org.freedesktop.DBus.NameHasOwner 0036 org.freedesktop.DBus.NameOwnerChanged 0037 org.freedesktop.DBus.NameLost 0038 org.freedesktop.DBus.NameAcquired 0039 org.freedesktop.DBus.StartServiceByName 0040 org.freedesktop.DBus.UpdateActivationEnvironment 0041 org.freedesktop.DBus.GetNameOwner 0042 org.freedesktop.DBus.GetConnectionUnixUser 0043 org.freedesktop.DBus.GetConnectionUnixProcessID 0044 org.freedesktop.DBus.AddMatch 0045 org.freedesktop.DBus.RemoveMatch 0046 org.freedesktop.DBus.GetId