[tor-commits] [arm/master] Switching stat titles to be an attribute
atagar at torproject.org
atagar at torproject.org
Mon Oct 20 01:17:33 UTC 2014
commit 0f3a81f0452d09dfdf7e0adc668f14213afb3e42
Author: Damian Johnson <atagar at torproject.org>
Date: Sun Oct 19 13:48:13 2014 -0700
Switching stat titles to be an attribute
No need for these to be delegated to a method. All stats behave in the same
way.
---
arm/graph_panel.py | 36 ++++++++++++++----------------------
1 file changed, 14 insertions(+), 22 deletions(-)
diff --git a/arm/graph_panel.py b/arm/graph_panel.py
index fab6603..f76df9a 100644
--- a/arm/graph_panel.py
+++ b/arm/graph_panel.py
@@ -143,6 +143,8 @@ class GraphStats:
# panel to be redrawn when updated (set when added to GraphPanel)
self._graph_panel = None
+ self.title = ''
+ self.title_stats = []
self.is_selected = False
self.is_pause_buffer = False
@@ -164,6 +166,8 @@ class GraphStats:
if not new_copy:
new_copy = GraphStats()
+ new_copy.title = self.title
+ new_copy.title_stats = list(self.title_stats)
new_copy.primary = Stat(self.primary)
new_copy.secondary = Stat(self.secondary)
@@ -191,13 +195,6 @@ class GraphStats:
else:
return False
- def get_title(self, width):
- """
- Provides top label.
- """
-
- return ''
-
def primary_header(self, width):
return ''
@@ -229,12 +226,12 @@ class BandwidthStats(GraphStats):
def __init__(self, is_pause_buffer = False):
GraphStats.__init__(self)
+ self.title = 'Bandwidth'
# listens for tor reload (sighup) events which can reset the bandwidth
# rate/burst
controller = tor_controller()
- self._title_stats = []
if not is_pause_buffer:
self.reset_listener(controller, State.INIT, None) # initializes values
@@ -263,8 +260,6 @@ class BandwidthStats(GraphStats):
if not new_copy:
new_copy = BandwidthStats(True)
- new_copy._title_stats = self._title_stats
-
return GraphStats.clone(self, new_copy)
def reset_listener(self, controller, event_type, _):
@@ -323,10 +318,6 @@ class BandwidthStats(GraphStats):
self._process_event(event.read / 1024.0, event.written / 1024.0)
- def get_title(self, width):
- stats_label = str_tools.join(self._title_stats, ', ', width - 13)
- return 'Bandwidth (%s):' % stats_label if stats_label else 'Bandwidth:'
-
def primary_header(self, width):
stats = ['%-14s' % ('%s/sec' % _size_label(self.primary.latest_value * 1024))]
@@ -400,7 +391,7 @@ class BandwidthStats(GraphStats):
if observed_bw:
stats.append('observed: %s/s' % _size_label(observed_bw))
- self._title_stats = stats
+ self.title_stats = stats
class ConnStats(GraphStats):
@@ -409,6 +400,10 @@ class ConnStats(GraphStats):
outbound. Control connections are excluded from counts.
"""
+ def __init__(self):
+ GraphStats.__init__(self)
+ self.title = 'Connection Count'
+
def clone(self, new_copy=None):
if not new_copy:
new_copy = ConnStats()
@@ -440,9 +435,6 @@ class ConnStats(GraphStats):
self._process_event(inbound_count, outbound_count)
- def get_title(self, width):
- return 'Connection Count:'
-
def primary_header(self, width):
avg = self.primary.total / max(1, self.primary.tick)
return 'Inbound (%s, avg: %s):' % (self.primary.latest_value, avg)
@@ -459,6 +451,7 @@ class ResourceStats(GraphStats):
def __init__(self):
GraphStats.__init__(self)
+ self.title = 'System Resources'
self._last_counter = None
def clone(self, new_copy=None):
@@ -467,9 +460,6 @@ class ResourceStats(GraphStats):
return GraphStats.clone(self, new_copy)
- def get_title(self, width):
- return 'System Resources:'
-
def primary_header(self, width):
avg = self.primary.total / max(1, self.primary.tick)
return 'CPU (%0.1f%%, avg: %0.1f%%):' % (self.primary.latest_value, avg)
@@ -733,7 +723,9 @@ class GraphPanel(panel.Panel):
graph_column = min((width - 10) / 2, CONFIG['features.graph.max_width'])
if self.is_title_visible():
- self.addstr(0, 0, param.get_title(width), curses.A_STANDOUT)
+ title_stats = str_tools.join(param.title_stats, ', ', width - len(param.title) - 4)
+ title = '%s (%s):' % (param.title, title_stats) if title_stats else '%s:' % param.title
+ self.addstr(0, 0, title, curses.A_STANDOUT)
# top labels
More information about the tor-commits
mailing list