#!/usr/bin/python

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
import xmlrpclib

class WtfService():
    def __init__(self, host, port, path):
        class _RestrictedRequestHandle(SimpleXMLRPCRequestHandler):
             rpc_paths = (path,)
        self.server = SimpleXMLRPCServer((host, port),
                                         requestHandler=_RestrictedRequestHandle)
        self.server.register_introspection_functions()

    def registerFn(self,name,fn):
        self.server.register_function(name,fn)

    def registerObj(self,obj):
        self.server.register_instance(obj)

    def start(self):
	self.server.serve_forever()

def WtfClient(host,port,path):
    return xmlrpclib.ServerProxy('http://%s:%s/%s'%(host,port,path))

if __name__ == '__main__':
    import datetime

    def echo(msg):
	print(msg)

    def time():
        return datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')

    service = WtfService('',8000,'/test')
    service.registerFn('echo',echo)
    service.registerFn('time',time)
    service.start()

    client = WtfClient('localhost',8000,'/test')

    print(client.echo('hello'))
    print(client.time())



