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