Kamaelia docs : Kamaelia.Protocol.Torrent.TorrentClient.TorrentClient

Kamaelia.Protocol.Torrent.TorrentClient.TorrentClient

For examples and more explanations, see the module level docs.


class TorrentClient(Axon.ThreadedComponent.threadedcomponent)

TorrentClient([tickInterval]) -> component capable of downloading/sharing torrents.

Initialises the Mainline client. Uses threadedcomponent so it doesn't have to worry about blocking I/O or making Mainline yield periodically.

Keyword arguments:

  • tickInterval -- the interval in seconds at which TorrentClient checks inboxes (default=5)

Inboxes

  • control : Shut me down
  • inbox : Torrent IPC - add a torrent, stop a torrent etc.

Outboxes

  • outbox : Torrent IPC - status updates, completion, new torrent added etc.
  • signal : Say when I've shutdown

Methods defined here

decodeTorrent(self, data)

Converts bencoded raw metadata (as one would find in a .torrent file) into a metainfo object (which one can then get the torrent's properties from).

main(self)

Start the Mainline client and block indefinitely, listening for connectons.

sendStatusUpdates(self)

Send a TIPCTorrentStatusUpdate for each running torrent.

startTorrent(self, metainfo, save_incomplete_as, save_as, torrentid)

startTorrent causes MultiTorrent to begin downloading a torrent eventually. Use it instead of _start_torrent as it retries repeatedly if Mainline is busy.

tick(self)

Called periodically... by itself (gets rawserver to call it back after a delay of tickInterval seconds). Checks inboxes and sends a status-update message for every active torrent.

Feedback

Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!

Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.

-- Automatic documentation generator, 19 Oct 2008 at 14:29:09 UTC/GMT

This is a page from the Kamaelia website. You can find the original here: