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