51
52
typedef std::vector<char> packet_t;
55
57
// -------- find data -----------
57
59
class find_data : public traversal_algorithm
60
typedef boost::function<void(msg const*)> done_callback;
66
, routing_table& table
68
, done_callback const& callback
62
typedef boost::function<void(std::vector<tcp::endpoint> const&)> data_callback;
63
typedef boost::function<void(std::vector<std::pair<node_entry, std::string> > const&)> nodes_callback;
71
65
void got_data(msg const* m);
66
void got_write_token(node_id const& n, std::string const& write_token)
67
{ m_write_tokens[n] = write_token; }
69
find_data(node_impl& node, node_id target
70
, data_callback const& dcallback
71
, nodes_callback const& ncallback);
73
virtual char const* name() const { return "get_peers"; }
74
node_id const target() const { return m_target; }
75
79
void invoke(node_id const& id, udp::endpoint addr);
81
, routing_table& table
83
, done_callback const& callback
86
done_callback m_done_callback;
87
boost::shared_ptr<packet_t> m_packet;
81
data_callback m_data_callback;
82
nodes_callback m_nodes_callback;
83
std::map<node_id, std::string> m_write_tokens;
84
node_id const m_target;