summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'seggetd/stats.h')
-rw-r--r--seggetd/stats.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/seggetd/stats.h b/seggetd/stats.h
new file mode 100644
index 0000000..b27971c
--- /dev/null
+++ b/seggetd/stats.h
@@ -0,0 +1,82 @@
+/*
+* Copyright (C) 2010 Robin H.Johnson, Ovechko Kostyantyn <fastinetserver@gmail.com>.
+*
+* Project: IDFetch.
+* Developer: Ovechko Kostyantyn Olexandrovich (Kharkiv State Technical University of Construction and Architecture, Ukraine).
+* Mentor: Robin H. Johnson (Gentoo Linux: Developer, Trustee & Infrastructure Lead).
+* Mentoring organization: Gentoo Linux.
+* Sponsored by GSOC 2010.
+*
+* This file is part of Segget.
+*
+* Segget is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* Segget is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with Segget; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef __STATS_H__
+#define __STATS_H__
+
+#include <sys/time.h>
+#include "connection.h"
+#include "tui.h"
+#include "settings.h"
+using namespace std;
+
+class Tstats{
+ public:
+ ulong dld_size;
+ ulong dld_distfiles_count;
+ uint total_size;
+ ulong total_bytes_per_last_interval;
+// time_t prev_time;
+ struct timeval segget_start_time;
+ struct timeval previous_time;
+ double last_time_interval;
+ ulong avg_total_speed;
+ uint pkg_count;
+ ulong distfiles_count;
+ ulong segments_count;
+ ulong dld_segments_count;
+ ulong active_connections_counter;
+ ulong fails_counter;
+ Tstats():
+ dld_size(0),
+ dld_distfiles_count(0),
+ total_size(0),
+ total_bytes_per_last_interval(0),
+// prev_time(),
+ segget_start_time(),
+ previous_time(),
+ last_time_interval(1),
+ avg_total_speed(0),
+ pkg_count(0),
+ distfiles_count(0),
+ segments_count(0),
+ dld_segments_count(0),
+ active_connections_counter(0),
+ fails_counter(0)
+ {};
+ void inc_dld_size(ulong more_bytes){ dld_size+=more_bytes;};
+ ulong get_dld_size(){return dld_size;};
+ void inc_dld_distfiles_count();
+ ulong get_dld_distfiles_count(){return dld_distfiles_count;};
+ void inc_total_size(ulong more_bytes){ total_size+=more_bytes;};
+ ulong get_total_size(){return total_size;};
+ void show_totals();
+ void reset_previous_time();
+};
+
+extern Tstats stats;
+
+#endif \ No newline at end of file