diff --git a/Makefile.am b/Makefile.am index cec98dde..f2fdbf9a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,4 +2,6 @@ SUBDIRS = src EXTRA_DIST= \ autogen.sh \ + rak/algorithm.h \ + rak/functional.h \ scripts/checks.m4 diff --git a/TODO b/TODO index 34fbe6b7..e16cd55e 100644 --- a/TODO +++ b/TODO @@ -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. \ No newline at end of file +allowed since the tracker set a min interval. + +Make accumulate return the value, no refs please... \ No newline at end of file diff --git a/src/utils/algorithm.h b/rak/algorithm.h similarity index 98% rename from src/utils/algorithm.h rename to rak/algorithm.h index 00bc76c0..2595647d 100644 --- a/src/utils/algorithm.h +++ b/rak/algorithm.h @@ -3,7 +3,7 @@ #include -namespace utils { +namespace rak { template _Function diff --git a/src/utils/functional.h b/rak/functional.h similarity index 99% rename from src/utils/functional.h rename to rak/functional.h index 9011876e..41e88c6c 100644 --- a/src/utils/functional.h +++ b/rak/functional.h @@ -3,7 +3,7 @@ #include -namespace utils { +namespace rak { template struct _accumulate { diff --git a/src/core/curl_stack.cc b/src/core/curl_stack.cc index 73dc8b73..7b18b4eb 100644 --- a/src/core/curl_stack.cc +++ b/src/core/curl_stack.cc @@ -4,7 +4,7 @@ #include #include -#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"); diff --git a/src/core/download_list.cc b/src/core/download_list.cc index f1a2fa90..51744c3e 100644 --- a/src/core/download_list.cc +++ b/src/core/download_list.cc @@ -3,7 +3,7 @@ #include #include -#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()); + std::for_each(begin(), end(), rak::call_delete()); Base::clear(); } diff --git a/src/core/hash_queue.cc b/src/core/hash_queue.cc index c5c9e0c5..8df0d5dc 100644 --- a/src/core/hash_queue.cc +++ b/src/core/hash_queue.cc @@ -5,7 +5,7 @@ #include #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; diff --git a/src/core/http_queue.cc b/src/core/http_queue.cc index 8b23a01c..6ebd204d 100644 --- a/src/core/http_queue.cc +++ b/src/core/http_queue.cc @@ -6,7 +6,7 @@ #include #include -#include "utils/functional.h" +#include "rak/functional.h" #include "http_queue.h" #include "curl_get.h" diff --git a/src/core/log.cc b/src/core/log.cc index f1deee4b..5f74f1ed 100644 --- a/src/core/log.cc +++ b/src/core/log.cc @@ -3,7 +3,7 @@ #include #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(), t))); + return std::find_if(begin(), end(), rak::on(rak::mem_ptr_ref(&Type::first), std::bind2nd(std::less_equal(), t))); } } diff --git a/src/display/manager.cc b/src/display/manager.cc index 63aa9143..64a8587f 100644 --- a/src/display/manager.cc +++ b/src/display/manager.cc @@ -3,7 +3,7 @@ #include #include -#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(); } diff --git a/src/display/window_download_list.cc b/src/display/window_download_list.cc index 3c87d9f1..b87e1ee7 100644 --- a/src/display/window_download_list.cc +++ b/src/display/window_download_list.cc @@ -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 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 diff --git a/src/display/window_file_list.cc b/src/display/window_file_list.cc index 061d1600..7b605ea4 100644 --- a/src/display/window_file_list.cc +++ b/src/display/window_file_list.cc @@ -3,7 +3,7 @@ #include #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 Range; - Range range = utils::advance_bidirectional(0, *m_focus, m_download->get_download().get_entry_size(), - m_canvas->get_height()); + Range range = rak::advance_bidirectional(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); diff --git a/src/display/window_http_queue.cc b/src/display/window_http_queue.cc index 7fc1fa8b..b0e1f133 100644 --- a/src/display/window_http_queue.cc +++ b/src/display/window_http_queue.cc @@ -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"); diff --git a/src/display/window_peer_list.cc b/src/display/window_peer_list.cc index e5fa0b6d..b59a7d6a 100644 --- a/src/display/window_peer_list.cc +++ b/src/display/window_peer_list.cc @@ -3,7 +3,7 @@ #include #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 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"); diff --git a/src/utils/Makefile.am b/src/utils/Makefile.am index 194296ad..7c6feaa6 100644 --- a/src/utils/Makefile.am +++ b/src/utils/Makefile.am @@ -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 \ diff --git a/src/utils/directory.cc b/src/utils/directory.cc index 33f4d338..e399d0c1 100644 --- a/src/utils/directory.cc +++ b/src/utils/directory.cc @@ -5,7 +5,6 @@ #include #include -#include "functional.h" #include "directory.h" namespace utils {