summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/gras/top_block.hpp5
-rw-r--r--lib/top_block_stats.cpp2
-rw-r--r--python/gras/GRAS_HierBlock.i4
-rw-r--r--python/gras/stats/__init__.py6
-rw-r--r--tests/stats_test.py2
5 files changed, 10 insertions, 9 deletions
diff --git a/include/gras/top_block.hpp b/include/gras/top_block.hpp
index 34ee98d..fc86e30 100644
--- a/include/gras/top_block.hpp
+++ b/include/gras/top_block.hpp
@@ -78,10 +78,11 @@ struct GRAS_API TopBlock : HierBlock
virtual bool wait(const double timeout);
/*!
- * Get block usage statistics in XML format.
+ * Get block usage statistics in some format.
+ * Args are used to set the query parameters.
* An external app will visualize the data.
*/
- virtual std::string get_stats_xml(void);
+ virtual std::string get_stats(const std::string &args);
};
} //namespace gras
diff --git a/lib/top_block_stats.cpp b/lib/top_block_stats.cpp
index 5d206e2..2a6d36c 100644
--- a/lib/top_block_stats.cpp
+++ b/lib/top_block_stats.cpp
@@ -22,7 +22,7 @@ struct GetStatsReceiver : Theron::Receiver
std::vector<GetStatsMessage> messages;
};
-std::string TopBlock::get_stats_xml(void)
+std::string TopBlock::get_stats(const std::string &)
{
GetStatsReceiver receiver;
(*this)->executor->post_all(GetStatsMessage(), receiver);
diff --git a/python/gras/GRAS_HierBlock.i b/python/gras/GRAS_HierBlock.i
index 1d2ba6e..481bb0e 100644
--- a/python/gras/GRAS_HierBlock.i
+++ b/python/gras/GRAS_HierBlock.i
@@ -96,10 +96,10 @@ struct TopBlockPython : TopBlock
return TopBlock::wait(timeout);
}
- std::string get_stats_xml(void)
+ std::string get_stats(const std::string &args)
{
PyTSPhondler phil;
- return TopBlock::get_stats_xml();
+ return TopBlock::get_stats(args);
}
};
diff --git a/python/gras/stats/__init__.py b/python/gras/stats/__init__.py
index ce570b0..6f68d1f 100644
--- a/python/gras/stats/__init__.py
+++ b/python/gras/stats/__init__.py
@@ -4,7 +4,7 @@ import BaseHTTPServer
import os
__path__ = os.path.abspath(os.path.dirname(__file__))
-get_stats_registry = [lambda: ""]
+server_registry = dict()
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
@@ -19,7 +19,7 @@ class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
s.send_response(200)
s.send_header("Content-type", "text/xml")
s.end_headers()
- s.wfile.write(get_stats_registry[0]())
+ s.wfile.write(server_registry[s.server].get_stats(""))
return
path = s.path
if path.startswith('/'): path = path[1:]
@@ -40,9 +40,9 @@ import select
class http_server(object):
def __init__(self, args, top_block):
- get_stats_registry[0] = top_block.get_stats_xml
server_class = BaseHTTPServer.HTTPServer
self._httpd = server_class(args, MyHandler)
+ server_registry[self._httpd] = top_block
def serve_forever(self):
while True:
diff --git a/tests/stats_test.py b/tests/stats_test.py
index 9d937e9..1c4ff5e 100644
--- a/tests/stats_test.py
+++ b/tests/stats_test.py
@@ -22,7 +22,7 @@ class StatsTest(unittest.TestCase):
self.assertEqual(vec_sink.get_vector(), (0, 9, 8, 7, 6))
- print self.tb.get_stats_xml()
+ print self.tb.get_stats("")
if __name__ == '__main__':
unittest.main()