diff --git a/linspector/backends/jsonrpc.py b/linspector/backends/jsonrpc.py index 5826d0d..8873de5 100644 --- a/linspector/backends/jsonrpc.py +++ b/linspector/backends/jsonrpc.py @@ -1,6 +1,8 @@ """ A JSON-RPC backend using HTTP. +Uses: http://deavid.github.io/bjsonrpc/ + Copyright (c) 2011-2013 "Johannes Findeisen and Rafael Timmerberg" This file is part of Linspector (http://linspector.org). @@ -21,15 +23,37 @@ along with this program. If not, see . import time +from bjsonrpc.handlers import BaseHandler +from bjsonrpc import createserver + from linspector.backends.backend import Backend -class JsonrpcBackend(Backend): - def __init__(self, interface, **kwargs): +class JsonrpcBackend(Backend, BaseHandler): + def __init__(self, interface, config, **kwargs): super(Backend, self).__init__(**kwargs) self.interface = interface + self.config = config + + self.host = "127.0.0.1" + if config["backends"]["jsonrpc"]["host"]: + self.host = config["backends"]["jsonrpc"]["host"] + self.port = 10123 + if config["backends"]["jsonrpc"]["port"]: + self.port = config["backends"]["jsonrpc"]["port"] def run(self): while True: - print "hello from JsonrpcBackend thread..." - time.sleep(5) + s = createserver(host=self.host, port=self.port, handler_factory=ServerHandler) + s.serve() + + +class ServerHandler(BaseHandler): + def time(self): + return time.time() + + def delta(self, start): + return time.time() - start + + def test(self): + return "test" \ No newline at end of file