= BitDaemon = BitDaemon will be a BitTorrent client which runs as a daemon allowing multiple clients to connect to it and control it, but for now its just a set of ideas. at the moment this page is just a scratch pad describing those ideas Current Planned Deps: * [[http://dbus.freedesktop.org|DBus]] * [[http://0pointer.de/lennart/projects/libdaemon/|libdaemon]] (maybe...) * [[http://libtorrent.rakshasa.no/|libTorrent]] * [[http://www.gtk.org/|glib]] (and GObject) Communication between it and its clients will happen via. a defined DBus interface (there might be a current Draft of the interface spec in /SpecDraft) Tracker communication will use libTorrent '''Hooks''': Hooks allow you to run anything when something happens, for example when a download finishes, BitDaemon should implement hooks in 2 ways: * something like the way subversion [[http://svnbook.red-bean.com/en/1.1/ch05s02.html#svn-ch-5-sect-2.1|impelements them]], running a script if its available on the local filesystem * Via. DBus signals, an Application can register a callback function for a signal == D-Bus interface == BitDaemon will use the org.dyndns.tfkyle.BitDaemon D-Bus message bus name, there will be one Global interface "org.dyndns.tfkyle.BitDaemon" at path /org/dyndns/tfkyle/bitdaemon, and multiple "org.dyndns.tfkyle.BitDaemon.Torrent" interfaces on the paths "/org/dyndns/tfkyle/bitdaemon/torrents/" where the torrent UUID is a uuid generated when adding a torrent