Seperated out my template algorithms and stuff.

git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@334 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-03-08 18:25:34 +00:00
parent f379abb200
commit a4dbdffcb8
16 changed files with 40 additions and 38 deletions
+2
View File
@@ -2,4 +2,6 @@ SUBDIRS = src
EXTRA_DIST= \
autogen.sh \
rak/algorithm.h \
rak/functional.h \
scripts/checks.m4
+3 -1
View File
@@ -9,4 +9,6 @@ Make clear distinction of upload/download throttle.
Consider basing WindowPeer* on a common base class.
Some kind of indication that a tracker request was tried, but won't be
allowed since the tracker set a min interval.
allowed since the tracker set a min interval.
Make accumulate return the value, no refs please...
+1 -1
View File
@@ -3,7 +3,7 @@
#include <algorithm>
namespace utils {
namespace rak {
template <typename _InputIter, typename _Function>
_Function
+1 -1
View File
@@ -3,7 +3,7 @@
#include <functional>
namespace utils {
namespace rak {
template <typename Type, typename Ftor>
struct _accumulate {
+2 -2
View File
@@ -4,7 +4,7 @@
#include <curl/multi.h>
#include <torrent/exceptions.h>
#include "utils/functional.h"
#include "rak/functional.h"
#include "curl_get.h"
#include "curl_stack.h"
@@ -41,7 +41,7 @@ CurlStack::perform() {
CURLMsg* msg = curl_multi_info_read((CURLM*)m_handle, &t);
CurlGetList::iterator itr = std::find_if(m_getList.begin(), m_getList.end(),
utils::equal(msg->easy_handle, std::mem_fun(&CurlGet::handle)));
rak::equal(msg->easy_handle, std::mem_fun(&CurlGet::handle)));
if (itr == m_getList.end())
throw torrent::client_error("Could not find CurlGet with the right easy_handle");
+2 -2
View File
@@ -3,7 +3,7 @@
#include <algorithm>
#include <torrent/torrent.h>
#include "utils/functional.h"
#include "rak/functional.h"
#include "download.h"
#include "download_list.h"
@@ -32,7 +32,7 @@ DownloadList::erase(iterator itr) {
void
DownloadList::clear() {
std::for_each(begin(), end(), utils::call_delete<Download>());
std::for_each(begin(), end(), rak::call_delete<Download>());
Base::clear();
}
+3 -3
View File
@@ -5,7 +5,7 @@
#include <sigc++/bind.h>
#include "download.h"
#include "utils/functional.h"
#include "rak/functional.h"
#include "hash_queue.h"
namespace core {
@@ -15,7 +15,7 @@ HashQueue::insert(Download* d, Slot s) {
if (d->get_download().is_hash_checking())
return;
if (std::find_if(begin(), end(), utils::equal(d, std::mem_fun(&HashQueueNode::get_download))) != end())
if (std::find_if(begin(), end(), rak::equal(d, std::mem_fun(&HashQueueNode::get_download))) != end())
throw std::logic_error("core::HashQueue::insert(...) received a Download that is already queued");
if (d->get_download().is_hash_checked()) {
@@ -32,7 +32,7 @@ HashQueue::insert(Download* d, Slot s) {
void
HashQueue::remove(Download* d) {
iterator itr = std::find_if(begin(), end(), utils::equal(d, std::mem_fun(&HashQueueNode::get_download)));
iterator itr = std::find_if(begin(), end(), rak::equal(d, std::mem_fun(&HashQueueNode::get_download)));
if (itr == end())
return;
+1 -1
View File
@@ -6,7 +6,7 @@
#include <sigc++/hide.h>
#include <torrent/http.h>
#include "utils/functional.h"
#include "rak/functional.h"
#include "http_queue.h"
#include "curl_get.h"
+2 -3
View File
@@ -3,7 +3,7 @@
#include <algorithm>
#include "log.h"
#include "utils/functional.h"
#include "rak/functional.h"
namespace core {
@@ -16,8 +16,7 @@ Log::push_front(const std::string& msg) {
Log::iterator
Log::find_older(utils::Timer t) {
return std::find_if(begin(), end(),
utils::on(utils::mem_ptr_ref(&Type::first), std::bind2nd(std::less_equal<utils::Timer>(), t)));
return std::find_if(begin(), end(), rak::on(rak::mem_ptr_ref(&Type::first), std::bind2nd(std::less_equal<utils::Timer>(), t)));
}
}
+6 -6
View File
@@ -3,7 +3,7 @@
#include <stdexcept>
#include <algorithm>
#include "utils/functional.h"
#include "rak/functional.h"
#include "canvas.h"
#include "manager.h"
@@ -26,8 +26,8 @@ Manager::adjust_layout() {
int countDynamic = 0;
int staticHeight = 0;
std::for_each(begin(), end(), utils::if_then(std::mem_fun(&Window::is_active), utils::accumulate(staticHeight, std::mem_fun(&Window::get_min_height))));
std::for_each(begin(), end(), utils::if_then(std::mem_fun(&Window::is_active), utils::accumulate(countDynamic, std::mem_fun(&Window::is_dynamic))));
std::for_each(begin(), end(), rak::if_then(std::mem_fun(&Window::is_active), rak::accumulate(staticHeight, std::mem_fun(&Window::get_min_height))));
std::for_each(begin(), end(), rak::if_then(std::mem_fun(&Window::is_active), rak::accumulate(countDynamic, std::mem_fun(&Window::is_dynamic))));
int dynamic = std::max(0, Canvas::get_screen_height() - staticHeight);
int height = 0, h;
@@ -56,9 +56,9 @@ void
Manager::do_update() {
Canvas::refresh_std();
std::for_each(begin(), end(), utils::if_then(std::mem_fun(&Window::is_active), utils::if_then(std::mem_fun(&Window::is_dirty),
std::mem_fun(&Window::redraw))));
std::for_each(begin(), end(), utils::if_then(std::mem_fun(&Window::is_active), std::mem_fun(&Window::refresh)));
std::for_each(begin(), end(), rak::if_then(std::mem_fun(&Window::is_active), rak::if_then(std::mem_fun(&Window::is_dirty),
std::mem_fun(&Window::redraw))));
std::for_each(begin(), end(), rak::if_then(std::mem_fun(&Window::is_active), std::mem_fun(&Window::refresh)));
Canvas::do_update();
}
+5 -5
View File
@@ -1,7 +1,7 @@
#include "config.h"
#include "core/download.h"
#include "utils/algorithm.h"
#include "rak/algorithm.h"
#include "canvas.h"
#include "utils.h"
@@ -26,10 +26,10 @@ WindowDownloadList::redraw() {
typedef std::pair<DList::iterator, DList::iterator> Range;
Range range = utils::advance_bidirectional(m_list->begin(),
*m_focus != m_list->end() ? *m_focus : m_list->begin(),
m_list->end(),
m_canvas->get_height() / 3);
Range range = rak::advance_bidirectional(m_list->begin(),
*m_focus != m_list->end() ? *m_focus : m_list->begin(),
m_list->end(),
m_canvas->get_height() / 3);
// Make sure we properly fill out the last lines so it looks like
// there are more torrents, yet don't hide it if we got the last one
+5 -3
View File
@@ -3,7 +3,7 @@
#include <stdexcept>
#include "core/download.h"
#include "utils/algorithm.h"
#include "rak/algorithm.h"
#include "window_file_list.h"
@@ -37,8 +37,10 @@ WindowFileList::redraw() {
typedef std::pair<unsigned int, unsigned int> Range;
Range range = utils::advance_bidirectional<unsigned int>(0, *m_focus, m_download->get_download().get_entry_size(),
m_canvas->get_height());
Range range = rak::advance_bidirectional<unsigned int>(0,
*m_focus,
m_download->get_download().get_entry_size(),
m_canvas->get_height());
while (range.first != range.second) {
torrent::Entry e = m_download->get_download().get_entry(range.first);
+2 -2
View File
@@ -6,7 +6,7 @@
#include "core/http_queue.h"
#include "canvas.h"
#include "utils/functional.h"
#include "rak/functional.h"
#include "window_http_queue.h"
namespace display {
@@ -105,7 +105,7 @@ WindowHttpQueue::receive_insert(core::CurlGet* h) {
void
WindowHttpQueue::receive_erase(core::CurlGet* h) {
Container::iterator itr = std::find_if(m_container.begin(), m_container.end(),
utils::equal(h, std::mem_fun_ref(&Node::get_http)));
rak::equal(h, std::mem_fun_ref(&Node::get_http)));
if (itr == m_container.end())
throw std::logic_error("WindowHttpQueue::receive_erase(...) tried to remove an object we don't have");
+5 -5
View File
@@ -3,7 +3,7 @@
#include <stdexcept>
#include "core/download.h"
#include "utils/algorithm.h"
#include "rak/algorithm.h"
#include "canvas.h"
#include "window_peer_list.h"
@@ -42,10 +42,10 @@ WindowPeerList::redraw() {
typedef std::pair<PList::iterator, PList::iterator> Range;
Range range = utils::advance_bidirectional(m_list->begin(),
*m_focus != m_list->end() ? *m_focus : m_list->begin(),
m_list->end(),
m_canvas->get_height() - y);
Range range = rak::advance_bidirectional(m_list->begin(),
*m_focus != m_list->end() ? *m_focus : m_list->begin(),
m_list->end(),
m_canvas->get_height() - y);
if (m_download->get_download().get_chunks_total() <= 0)
throw std::logic_error("WindowPeerList::redraw() m_slotChunksTotal() returned invalid value");
-2
View File
@@ -1,10 +1,8 @@
noinst_LIBRARIES = libsub_utils.a
libsub_utils_a_SOURCES = \
algorithm.h \
directory.cc \
directory.h \
functional.h \
parse.cc \
parse.h \
task.h \
-1
View File
@@ -5,7 +5,6 @@
#include <stdexcept>
#include <dirent.h>
#include "functional.h"
#include "directory.h"
namespace utils {