author | Mike Sullivan <Mike.Sullivan@Oracle.COM> |
Mon, 01 Jul 2013 23:01:39 -0700 | |
branch | s11-update |
changeset 2661 | 9eb4a163bb23 |
parent 248 | 3011f7a1ed77 |
permissions | -rw-r--r-- |
248
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
1 |
--- libtorrent-0.12.2.orig/src/torrent/tracker_list.cc 2008-07-01 22:21:49.641937000 -0400 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
2 |
+++ libtorrent-0.12.2/src/torrent/tracker_list.cc 2008-07-01 22:22:08.525804085 -0400 |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
3 |
@@ -66,14 +66,9 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
4 |
return m_itr != end() && (*m_itr)->is_busy(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
5 |
} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
6 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
7 |
-// Need a custom predicate because the is_usable function is virtual. |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
8 |
-struct tracker_usable_t : public std::unary_function<TrackerList::value_type, bool> { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
9 |
- bool operator () (const TrackerList::value_type& value) const { return value->is_usable(); } |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
10 |
-}; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
11 |
- |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
12 |
bool |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
13 |
TrackerList::has_usable() const { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
14 |
- return std::find_if(begin(), end(), tracker_usable_t()) != end(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
15 |
+ return find_usable(begin()) != end(); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
16 |
} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
17 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
18 |
void |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
19 |
@@ -90,6 +85,8 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
20 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
21 |
set_state(s); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
22 |
m_itr = find_usable(m_itr); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
23 |
+ if (m_itr == end()) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
24 |
+ m_itr = find_usable(begin()); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
25 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
26 |
if (m_itr != end()) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
27 |
(*m_itr)->send_state(state()); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
28 |
@@ -134,18 +131,12 @@ |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
29 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
30 |
TrackerList::iterator |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
31 |
TrackerList::find_usable(iterator itr) { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
32 |
- while (itr != end() && !tracker_usable_t()(*itr)) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
33 |
- ++itr; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
34 |
- |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
35 |
- return itr; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
36 |
+ return std::find_if(itr, end(), std::mem_fun(&Tracker::is_usable)); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
37 |
} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
38 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
39 |
TrackerList::const_iterator |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
40 |
TrackerList::find_usable(const_iterator itr) const { |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
41 |
- while (itr != end() && !tracker_usable_t()(*itr)) |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
42 |
- ++itr; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
43 |
- |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
44 |
- return itr; |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
45 |
+ return std::find_if(itr, end(), std::mem_fun(&Tracker::is_usable)); |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
46 |
} |
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
47 |
|
3011f7a1ed77
7046137 move *torrent to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
48 |
TrackerList::iterator |