libtorrent::dht::dht_tracker Struct Reference

#include <dht_tracker.hpp>

List of all members.

Public Member Functions

 dht_tracker (asio::io_service &ios, dht_settings const &settings, asio::ip::address listen_interface, entry const &bootstrap)
void stop ()
void add_node (udp::endpoint node)
void add_node (std::pair< std::string, int > const &node)
void add_router_node (std::pair< std::string, int > const &node)
void rebind (asio::ip::address listen_interface, int listen_port)
entry state () const
void announce (sha1_hash const &ih, int listen_port, boost::function< void(std::vector< tcp::endpoint > const &, sha1_hash const &)> f)
void dht_status (session_status &s)

Private Member Functions

boost::intrusive_ptr< dht_trackerself ()
void on_name_lookup (asio::error_code const &e, udp::resolver::iterator host)
void on_router_name_lookup (asio::error_code const &e, udp::resolver::iterator host)
void connection_timeout (asio::error_code const &e)
void refresh_timeout (asio::error_code const &e)
void tick (asio::error_code const &e)
void on_receive (asio::error_code const &error, size_t bytes_transferred)
void on_bootstrap ()
void send_packet (msg const &m)

Private Attributes

asio::strand m_strand
asio::ip::udp::socket m_socket
node_impl m_dht
int m_buffer
std::vector< char > m_in_buf [2]
udp::endpoint m_remote_endpoint [2]
std::vector< char > m_send_buf
boost::posix_time::ptime m_last_refresh
deadline_timer m_timer
deadline_timer m_connection_timer
deadline_timer m_refresh_timer
dht_settings const & m_settings
int m_refresh_bucket
udp::resolver m_host_resolver
boost::detail::atomic_count m_refs

Friends

void intrusive_ptr_add_ref (dht_tracker const *)
void intrusive_ptr_release (dht_tracker const *)


Detailed Description

Definition at line 70 of file dht_tracker.hpp.


Constructor & Destructor Documentation

libtorrent::dht::dht_tracker::dht_tracker ( asio::io_service ios,
dht_settings const &  settings,
asio::ip::address  listen_interface,
entry const &  bootstrap 
)


Member Function Documentation

void libtorrent::dht::dht_tracker::stop (  ) 

void libtorrent::dht::dht_tracker::add_node ( udp::endpoint  node  ) 

void libtorrent::dht::dht_tracker::add_node ( std::pair< std::string, int > const &  node  ) 

void libtorrent::dht::dht_tracker::add_router_node ( std::pair< std::string, int > const &  node  ) 

void libtorrent::dht::dht_tracker::rebind ( asio::ip::address  listen_interface,
int  listen_port 
)

entry libtorrent::dht::dht_tracker::state (  )  const

void libtorrent::dht::dht_tracker::announce ( sha1_hash const &  ih,
int  listen_port,
boost::function< void(std::vector< tcp::endpoint > const &, sha1_hash const &)>  f 
)

Definition at line 344 of file dht_tracker.cpp.

References libtorrent::dht::node_impl::announce(), and m_dht.

void libtorrent::dht::dht_tracker::dht_status ( session_status s  ) 

boost::intrusive_ptr<dht_tracker> libtorrent::dht::dht_tracker::self (  )  [inline, private]

Definition at line 94 of file dht_tracker.hpp.

void libtorrent::dht::dht_tracker::on_name_lookup ( asio::error_code const &  e,
udp::resolver::iterator  host 
) [private]

Definition at line 678 of file dht_tracker.cpp.

References add_node().

Referenced by add_node().

void libtorrent::dht::dht_tracker::on_router_name_lookup ( asio::error_code const &  e,
udp::resolver::iterator  host 
) [private]

Definition at line 696 of file dht_tracker.cpp.

References libtorrent::dht::node_impl::add_router_node(), and m_dht.

Referenced by add_router_node().

void libtorrent::dht::dht_tracker::connection_timeout ( asio::error_code const &  e  )  [private]

void libtorrent::dht::dht_tracker::refresh_timeout ( asio::error_code const &  e  )  [private]

void libtorrent::dht::dht_tracker::tick ( asio::error_code const &  e  )  [private]

void libtorrent::dht::dht_tracker::on_receive ( asio::error_code const &  error,
size_t  bytes_transferred 
) [private]

void libtorrent::dht::dht_tracker::on_bootstrap (  )  [private]

Definition at line 707 of file dht_tracker.cpp.

Referenced by dht_tracker().

void libtorrent::dht::dht_tracker::send_packet ( msg const &  m  )  [private]


Friends And Related Function Documentation

void intrusive_ptr_add_ref ( dht_tracker const *  c  )  [friend]

void intrusive_ptr_release ( dht_tracker const *  c  )  [friend]


Member Data Documentation

Definition at line 112 of file dht_tracker.hpp.

Referenced by dht_tracker(), on_receive(), rebind(), send_packet(), and stop().

Definition at line 118 of file dht_tracker.hpp.

Referenced by dht_tracker(), and on_receive().

std::vector<char> libtorrent::dht::dht_tracker::m_in_buf[2] [private]

Definition at line 119 of file dht_tracker.hpp.

Referenced by dht_tracker(), and on_receive().

Definition at line 120 of file dht_tracker.hpp.

Referenced by dht_tracker(), and on_receive().

std::vector<char> libtorrent::dht::dht_tracker::m_send_buf [private]

Definition at line 121 of file dht_tracker.hpp.

Referenced by send_packet().

boost::posix_time::ptime libtorrent::dht::dht_tracker::m_last_refresh [private]

Definition at line 123 of file dht_tracker.hpp.

deadline_timer libtorrent::dht::dht_tracker::m_timer [private]

Definition at line 124 of file dht_tracker.hpp.

Referenced by dht_tracker(), stop(), and tick().

Definition at line 125 of file dht_tracker.hpp.

Referenced by connection_timeout(), dht_tracker(), and stop().

Definition at line 126 of file dht_tracker.hpp.

Referenced by dht_tracker(), refresh_timeout(), and stop().

Definition at line 127 of file dht_tracker.hpp.

Referenced by send_packet().

Definition at line 128 of file dht_tracker.hpp.

Definition at line 131 of file dht_tracker.hpp.

Referenced by add_node(), and add_router_node().

boost::detail::atomic_count libtorrent::dht::dht_tracker::m_refs [mutable, private]


The documentation for this struct was generated from the following files:

Generated on Sun May 25 00:21:46 2008 by  doxygen 1.5.6