libtorrent::dht::node_impl Class Reference

#include <node.hpp>

List of all members.

Public Types

typedef routing_table::iterator iterator
typedef table_t::iterator data_iterator

Public Member Functions

 node_impl (boost::function< void(msg const &)> const &f, dht_settings const &settings, boost::optional< node_id > node_id)
virtual ~node_impl ()
void refresh (node_id const &id, boost::function0< void > f)
void bootstrap (std::vector< udp::endpoint > const &nodes, boost::function0< void > f)
void find_node (node_id const &id, boost::function< void(std::vector< node_entry > const &)> f)
void add_router_node (udp::endpoint router)
void incoming (msg const &m)
void refresh ()
void refresh_bucket (int bucket)
int bucket_size (int bucket)
iterator begin () const
iterator end () const
node_id const & nid () const
boost::tuple< int, int > size () const
data_iterator begin_data ()
data_iterator end_data ()
int data_size () const
void print_state (std::ostream &os) const
void announce (sha1_hash const &info_hash, int listen_port, boost::function< void(std::vector< tcp::endpoint > const &, sha1_hash const &)> f)
bool verify_token (msg const &m)
entry generate_token (msg const &m)
boost::posix_time::time_duration connection_timeout ()
boost::posix_time::time_duration refresh_timeout ()
void new_write_key ()
void add_node (udp::endpoint node)
void replacement_cache (bucket_t &nodes) const

Protected Member Functions

bool on_find (msg const &m, std::vector< tcp::endpoint > &peers) const
void on_announce (msg const &m, msg &reply)

Protected Attributes

dht_settings const & m_settings
int m_max_peers_reply

Private Types

typedef std::map< node_id,
torrent_entry
table_t

Private Member Functions

void incoming_request (msg const &h)

Private Attributes

node_id m_id
routing_table m_table
rpc_manager m_rpc
table_t m_map
boost::posix_time::ptime m_last_tracker_tick
int m_secret [2]


Detailed Description

Definition at line 88 of file node.hpp.


Member Typedef Documentation

Definition at line 90 of file node.hpp.

Definition at line 110 of file node.hpp.

typedef table_t::iterator libtorrent::dht::node_impl::data_iterator

Definition at line 115 of file node.hpp.


Constructor & Destructor Documentation

libtorrent::dht::node_impl::node_impl ( boost::function< void(msg const &)> const &  f,
dht_settings const &  settings,
boost::optional< node_id node_id 
)

Definition at line 89 of file node.cpp.

References m_secret.

virtual libtorrent::dht::node_impl::~node_impl (  )  [inline, virtual]

Definition at line 95 of file node.hpp.


Member Function Documentation

void libtorrent::dht::node_impl::refresh ( node_id const &  id,
boost::function0< void >  f 
)

void libtorrent::dht::node_impl::bootstrap ( std::vector< udp::endpoint > const &  nodes,
boost::function0< void >  f 
)

void libtorrent::dht::node_impl::find_node ( node_id const &  id,
boost::function< void(std::vector< node_entry > const &)>  f 
)

void libtorrent::dht::node_impl::add_router_node ( udp::endpoint  router  ) 

void libtorrent::dht::node_impl::incoming ( msg const &  m  ) 

void libtorrent::dht::node_impl::refresh (  ) 

void libtorrent::dht::node_impl::refresh_bucket ( int  bucket  ) 

int libtorrent::dht::node_impl::bucket_size ( int  bucket  ) 

Definition at line 175 of file node.cpp.

References libtorrent::dht::routing_table::bucket_size(), and m_table.

iterator libtorrent::dht::node_impl::begin (  )  const [inline]

Definition at line 112 of file node.hpp.

References libtorrent::dht::routing_table::begin(), and m_table.

Referenced by libtorrent::dht::dht_tracker::state().

iterator libtorrent::dht::node_impl::end (  )  const [inline]

node_id const& libtorrent::dht::node_impl::nid (  )  const [inline]

Definition at line 117 of file node.hpp.

References m_id.

Referenced by libtorrent::dht::dht_tracker::state().

boost::tuple<int, int> libtorrent::dht::node_impl::size (  )  const [inline]

data_iterator libtorrent::dht::node_impl::begin_data (  )  [inline]

Definition at line 120 of file node.hpp.

References m_map.

Referenced by connection_timeout(), and libtorrent::dht::dht_tracker::tick().

data_iterator libtorrent::dht::node_impl::end_data (  )  [inline]

Definition at line 121 of file node.hpp.

References m_map.

Referenced by connection_timeout(), and libtorrent::dht::dht_tracker::tick().

int libtorrent::dht::node_impl::data_size (  )  const [inline]

Definition at line 122 of file node.hpp.

References m_map.

Referenced by libtorrent::dht::dht_tracker::dht_status().

void libtorrent::dht::node_impl::print_state ( std::ostream &  os  )  const [inline]

Definition at line 124 of file node.hpp.

References m_table, and libtorrent::dht::routing_table::print_state().

Referenced by libtorrent::dht::dht_tracker::tick().

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

bool libtorrent::dht::node_impl::verify_token ( msg const &  m  ) 

entry libtorrent::dht::node_impl::generate_token ( msg const &  m  ) 

time_duration libtorrent::dht::node_impl::connection_timeout (  ) 

time_duration libtorrent::dht::node_impl::refresh_timeout (  ) 

void libtorrent::dht::node_impl::new_write_key (  ) 

Definition at line 180 of file node.cpp.

References m_secret.

Referenced by libtorrent::dht::dht_tracker::tick().

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

void libtorrent::dht::node_impl::replacement_cache ( bucket_t nodes  )  const [inline]

bool libtorrent::dht::node_impl::on_find ( msg const &  m,
std::vector< tcp::endpoint > &  peers 
) const [protected]

void libtorrent::dht::node_impl::on_announce ( msg const &  m,
msg reply 
) [protected]

void libtorrent::dht::node_impl::incoming_request ( msg const &  h  )  [private]


Member Data Documentation

Definition at line 160 of file node.hpp.

Referenced by announce(), bootstrap(), on_find(), refresh(), and refresh_bucket().

Definition at line 165 of file node.hpp.

Definition at line 170 of file node.hpp.

Referenced by bootstrap(), nid(), refresh(), and refresh_bucket().

Definition at line 173 of file node.hpp.

Referenced by begin_data(), connection_timeout(), data_size(), end_data(), on_announce(), and on_find().

boost::posix_time::ptime libtorrent::dht::node_impl::m_last_tracker_tick [private]

Definition at line 175 of file node.hpp.

Referenced by connection_timeout().

Definition at line 178 of file node.hpp.

Referenced by generate_token(), new_write_key(), node_impl(), and verify_token().


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

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