The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::BitTorrent::Session - .torrent session

CONSTRUCTOR

new ( { [ARGS] } )

Creates a Net::BitTorrent::Session object. This constructor is called by Net::BitTorrent::add_session() and should not be used directly. new ( ) accepts arguments as a hash, using key-value pairs:

path

Filename of the .torrent file to load.

This is the only required parameter.

base_dir

Base directory used to store the files related to this session. This directory is created if not preexisting.

Default: ./ (Current working directory)

block_length

Length of blocks we request from peers of this session. This should not be changed as it can greatly affect performance.

Default: 32768 (2**15)

METHODS

Unless stated, all methods return either a true or false value, with true meaning that the operation was a success. When a method states that it returns a value, failure will result in undef or an empty list.

add_tracker ( URLS )

Add a new Net::BitTorrent::Session::Tracker tier to the session. Accepts a list of URLs.

See also: trackers ( )

append_nodes ( STRING )

Adds a string of compacted nodes to the list of potential peers.

See also: compact_nodes ( ), nodes ( ), Net::BitTorrent::Util::compact( )

as_string ( [ VERBOSE ] )

Returns a 'ready to print' dump of the Net::BitTorrent::Session object's data structure. If called in void context, the structure is printed to STDERR.

See also: [id://317520], Net::BitTorrent::as_string()

bitfield ( )

Returns a bitfield representing the pieces that have been successfully downloaded.

block_size ( [NEWVAL] )

Mutator to get and/or set the size used when requesting data from peers. Use with care.

See also: Net::BitTorrent::maximum_buffer_size( ), theory.org (http://tinyurl.com/32k7wu), discussion (http://tinyurl.com/4ekea2)

client ( )

Returns the Net::BitTorrent object related to this session.

close_files ( )

Forces the closure of all related Net::BitTorrent::Session::File objects with open file handles.

Under normal circumstances, this should not be called in clients.

compact_nodes ( )

Returns a list of potential peers as a compacted string.

See also: nodes ( ), Net::BitTorrent::Util::compact( ) Net::BitTorrent::Util::uncompact( )

complete ( )

Boolean value indicating whether or not we have finished downloading all pieces we want.

See also: Net::BitTorrent::Session::Piece

downloaded ( )

Returns the total amount of data downloaded during the current session.

See also: uploaded ( )

files ( )

Returns a list of Net::BitTorrent::Session::File objects representing all files contained in the related .torrent file.

hash_check ( )

Verifies the integrity of all files associated with this session.

This is a blocking method; all processing will stop until this function returns.

See also: Net::BitTorrent::Session::Piece::verify( )

infohash ( )

Returns the 20 byte SHA1 hash used to identify this session internally, with trackers, and with remote peers.

nodes ( )

Returns a list of potential peers.

To receive a compacted list of nodes (to use in a quick resume system, for example), see compact_nodes( ).

peers ( )

Returns a list of all related Net::BitTorrent::Session::Peer objects.

piece_count ( )

Returns the number of Net::BitTorrent::Session::Piece objects related to this session.

piece_size ( )

Returns the piece size defined in the .torrent file.

pieces ( )

Returns a list of Net::BitTorrent::Session::Piece objects.

private ( )

Returns a bool value indicating whether or not this session is allowed to use DHT and other Peer Exchange protocols.

total_size ( )

Returns the total size of all files listed in the .torrent file.

trackers ( )

Returns a list of all Net::BitTorrent::Session::Tracker objects related to the session.

See also: add_tracker ( )

uploaded ( )

Returns the total amount of data uploaded during the current session.

See also: downloaded ( )

AUTHOR

Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/

CPAN ID: SANKO

LICENSE AND LEGAL

Copyright 2008 by Sanko Robinson <sanko@cpan.org>

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html or the LICENSE file included with this module.

All POD documentation is covered by the Creative Commons Attribution-Noncommercial-Share Alike 3.0 License (http://creativecommons.org/licenses/by-nc-sa/3.0/us/).

Neither this module nor the AUTHOR is affiliated with BitTorrent, Inc.