Fixed freebsd compile errors.

Added global rate display.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@463 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2005-06-15 09:28:52 +00:00
parent fdc56e8f09
commit 2e83af28ac
6 changed files with 50 additions and 10 deletions
+8 -4
View File
@@ -70,19 +70,23 @@ public:
template <typename A1, typename A2, typename A3>
void print(int x, int y, char* str,
A1 a1, A2 a2, A3 a3) { mvwprintw(m_window, y, x, str, a1, a2, a3); }
A1 a1, A2 a2, A3 a3) { mvwprintw(m_window, y, x, str, a1, a2, a3); }
template <typename A1, typename A2, typename A3, typename A4>
void print(int x, int y, char* str,
A1 a1, A2 a2, A3 a3, A4 a4) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4); }
A1 a1, A2 a2, A3 a3, A4 a4) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4); }
template <typename A1, typename A2, typename A3, typename A4, typename A5>
void print(int x, int y, char* str,
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5); }
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5); }
template <typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
void print(int x, int y, char* str,
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5, a6); }
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5, a6); }
template <typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
void print(int x, int y, char* str,
A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) { mvwprintw(m_window, y, x, str, a1, a2, a3, a4, a5, a6, a7); }
void set_attr(int x, int y, int n, int attr, int color) { mvwchgat(m_window, y, x, n, attr, color, NULL); }
+3 -1
View File
@@ -56,8 +56,10 @@ WindowStatusbar::redraw() {
else
pos = snprintf(buf + pos, 128 - pos, "%-3i", torrent::get_read_throttle() / 1024);
m_canvas->print(0, 0, "Throttle U/D: %s Listen: %s:%i%s Handshakes: %i",
m_canvas->print(0, 0, "Throttle U/D: %s Rate: %5.1f / %5.1f KiB Listen: %s:%i%s Handshakes: %i",
buf,
(double)torrent::get_write_rate() / 1024.0,
(double)torrent::get_read_rate() / 1024.0,
!torrent::get_ip().empty() ? torrent::get_ip().c_str() : "<default>",
(int)torrent::get_listen_port(),
!torrent::get_bind().empty() ? (" Bind: " + torrent::get_bind()).c_str() : "",
+2 -1
View File
@@ -191,6 +191,7 @@ main(int argc, char** argv) {
SignalHandler::set_handler(SIGINT, sigc::bind(sigc::mem_fun(uiRoot, &ui::Root::set_shutdown_received), true));
SignalHandler::set_handler(SIGSEGV, sigc::bind(sigc::ptr_fun(&do_panic), SIGSEGV));
SignalHandler::set_handler(SIGBUS, sigc::bind(sigc::ptr_fun(&do_panic), SIGBUS));
SignalHandler::set_handler(SIGFPE, sigc::bind(sigc::ptr_fun(&do_panic), SIGFPE));
// Need to initialize this before parseing options.
torrent::initialize();
@@ -249,7 +250,7 @@ do_panic(int signum) {
SignalHandler::set_default(signum);
display::Canvas::cleanup();
std::cout << "Signal " << (signum == SIGSEGV ? "SIGSEGV" : "SIGBUS") << " recived, dumping stack:" << std::endl;
std::cout << "Caught " << SignalHandler::as_string(signum) << ", dumping stack:" << std::endl;
#ifdef USE_EXECINFO
void* stackPtrs[20];
+1
View File
@@ -22,6 +22,7 @@
#include "config.h"
#include <netinet/in.h>
#include <arpa/inet.h>
#include <torrent/torrent.h>
+30
View File
@@ -67,3 +67,33 @@ SignalHandler::caught(int signum) {
m_handlers[signum]();
}
const char*
SignalHandler::as_string(unsigned int signum) {
switch (signum) {
case SIGHUP:
return "Hangup detected";
case SIGINT:
return "Interrupt from keyboard";
case SIGQUIT:
return "Quit signal";
case SIGILL:
return "Illegal instruction";
case SIGABRT:
return "Abort signal";
case SIGFPE:
return "Floating point exception";
case SIGKILL:
return "Kill signal";
case SIGSEGV:
return "Segmentation fault";
case SIGPIPE:
return "Broken pipe";
case SIGALRM:
return "Timer signal";
case SIGTERM:
return "Termination signal";
default:
return "Unlisted";
}
}
+6 -4
View File
@@ -32,12 +32,14 @@ public:
static const unsigned int HIGHEST_SIGNAL = 32;
static void set_default(unsigned int signum);
static void set_ignore(unsigned int signum);
static void set_handler(unsigned int signum, Slot slot);
static void set_default(unsigned int signum);
static void set_ignore(unsigned int signum);
static void set_handler(unsigned int signum, Slot slot);
static const char* as_string(unsigned int signum);
private:
static void caught(int signum);
static void caught(int signum);
static Slot m_handlers[HIGHEST_SIGNAL];
};