mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-10 12:12:31 +00:00
Converted sigc::signals to STL.
This commit is contained in:
+14
-11
@@ -54,25 +54,28 @@ HttpQueue::insert(const std::string& url, std::iostream* s) {
|
||||
h->set_stream(s);
|
||||
h->set_timeout(5 * 60);
|
||||
|
||||
iterator itr = Base::insert(end(), h.get());
|
||||
iterator signal_itr = base_type::insert(end(), h.get());
|
||||
|
||||
h->signal_done().push_back(std::tr1::bind(&HttpQueue::erase, this, itr));
|
||||
h->signal_failed().push_back(std::tr1::bind(&HttpQueue::erase, this, itr));
|
||||
h->signal_done().push_back(std::tr1::bind(&HttpQueue::erase, this, signal_itr));
|
||||
h->signal_failed().push_back(std::tr1::bind(&HttpQueue::erase, this, signal_itr));
|
||||
|
||||
(*itr)->start();
|
||||
(*signal_itr)->start();
|
||||
|
||||
h.release();
|
||||
m_signalInsert.emit(*itr);
|
||||
|
||||
return itr;
|
||||
for (signal_curl_get::iterator itr = m_signal_insert.begin(), last = m_signal_insert.end(); itr != last; itr++)
|
||||
(*itr)(*signal_itr);
|
||||
|
||||
return signal_itr;
|
||||
}
|
||||
|
||||
void
|
||||
HttpQueue::erase(iterator itr) {
|
||||
m_signalErase.emit(*itr);
|
||||
HttpQueue::erase(iterator signal_itr) {
|
||||
for (signal_curl_get::iterator itr = m_signal_erase.begin(), last = m_signal_erase.end(); itr != last; itr++)
|
||||
(*itr)(*signal_itr);
|
||||
|
||||
delete *itr;
|
||||
Base::erase(itr);
|
||||
delete *signal_itr;
|
||||
base_type::erase(signal_itr);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -80,7 +83,7 @@ HttpQueue::clear() {
|
||||
while (!empty())
|
||||
erase(begin());
|
||||
|
||||
Base::clear();
|
||||
base_type::clear();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+20
-20
@@ -39,7 +39,6 @@
|
||||
|
||||
#include <list>
|
||||
#include <iosfwd>
|
||||
#include <sigc++/signal.h>
|
||||
#include <tr1/functional>
|
||||
|
||||
namespace core {
|
||||
@@ -48,22 +47,23 @@ class CurlGet;
|
||||
|
||||
class HttpQueue : private std::list<CurlGet*> {
|
||||
public:
|
||||
typedef std::list<CurlGet*> Base;
|
||||
typedef sigc::signal1<void, CurlGet*> SignalHttp;
|
||||
typedef std::tr1::function<CurlGet* ()> slot_factory;
|
||||
typedef std::list<CurlGet*> base_type;
|
||||
typedef std::tr1::function<CurlGet* ()> slot_factory;
|
||||
typedef std::tr1::function<void (CurlGet*)> slot_curl_get;
|
||||
typedef std::list<slot_curl_get> signal_curl_get;
|
||||
|
||||
using Base::iterator;
|
||||
using Base::const_iterator;
|
||||
using Base::reverse_iterator;
|
||||
using Base::const_reverse_iterator;
|
||||
using base_type::iterator;
|
||||
using base_type::const_iterator;
|
||||
using base_type::reverse_iterator;
|
||||
using base_type::const_reverse_iterator;
|
||||
|
||||
using Base::begin;
|
||||
using Base::end;
|
||||
using Base::rbegin;
|
||||
using Base::rend;
|
||||
using base_type::begin;
|
||||
using base_type::end;
|
||||
using base_type::rbegin;
|
||||
using base_type::rend;
|
||||
|
||||
using Base::empty;
|
||||
using Base::size;
|
||||
using base_type::empty;
|
||||
using base_type::size;
|
||||
|
||||
HttpQueue() {}
|
||||
~HttpQueue() { clear(); }
|
||||
@@ -78,15 +78,15 @@ public:
|
||||
|
||||
void clear();
|
||||
|
||||
void set_slot_factory(slot_factory s) { m_slot_factory = s; }
|
||||
void set_slot_factory(slot_factory s) { m_slot_factory = s; }
|
||||
|
||||
SignalHttp& signal_insert() { return m_signalInsert; }
|
||||
SignalHttp& signal_erase() { return m_signalErase; }
|
||||
signal_curl_get& signal_insert() { return m_signal_insert; }
|
||||
signal_curl_get& signal_erase() { return m_signal_erase; }
|
||||
|
||||
private:
|
||||
slot_factory m_slot_factory;
|
||||
SignalHttp m_signalInsert;
|
||||
SignalHttp m_signalErase;
|
||||
slot_factory m_slot_factory;
|
||||
signal_curl_get m_signal_insert;
|
||||
signal_curl_get m_signal_erase;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -52,8 +52,14 @@ WindowHttpQueue::WindowHttpQueue(core::HttpQueue* q) :
|
||||
m_queue(q) {
|
||||
|
||||
set_active(false);
|
||||
m_connInsert = m_queue->signal_insert().connect(sigc::mem_fun(*this, &WindowHttpQueue::receive_insert));
|
||||
m_connErase = m_queue->signal_erase().connect(sigc::mem_fun(*this, &WindowHttpQueue::receive_erase));
|
||||
m_connInsert = m_queue->signal_insert().insert(m_queue->signal_insert().end(),
|
||||
std::tr1::bind(&WindowHttpQueue::receive_insert,
|
||||
this,
|
||||
std::tr1::placeholders::_1));
|
||||
m_connErase = m_queue->signal_erase().insert(m_queue->signal_insert().end(),
|
||||
std::tr1::bind(&WindowHttpQueue::receive_erase,
|
||||
this,
|
||||
std::tr1::placeholders::_1));
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#ifndef RTORRENT_DISPLAY_WINDOW_HTTP_QUEUE_H
|
||||
#define RTORRENT_DISPLAY_WINDOW_HTTP_QUEUE_H
|
||||
|
||||
#include <sigc++/connection.h>
|
||||
#include <tr1/functional>
|
||||
|
||||
#include "window.h"
|
||||
|
||||
@@ -50,8 +50,10 @@ namespace display {
|
||||
|
||||
class WindowHttpQueue : public Window {
|
||||
public:
|
||||
typedef std::tr1::function<void (core::CurlGet*)> slot_curl_get;
|
||||
typedef std::list<slot_curl_get> signal_curl_get;
|
||||
|
||||
WindowHttpQueue(core::HttpQueue* q);
|
||||
~WindowHttpQueue() { m_connInsert.disconnect(); m_connErase.disconnect(); }
|
||||
|
||||
virtual void redraw();
|
||||
|
||||
@@ -76,10 +78,10 @@ private:
|
||||
static std::string create_name(core::CurlGet* h);
|
||||
|
||||
core::HttpQueue* m_queue;
|
||||
sigc::connection m_connInsert;
|
||||
sigc::connection m_connErase;
|
||||
|
||||
Container m_container;
|
||||
|
||||
signal_curl_get::iterator m_connInsert;
|
||||
signal_curl_get::iterator m_connErase;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user