# Collection of code snippets by Arne Vajhøj 
# (from articles on eksperten.dk / vajhoej.dk written sometime between 2004 and now) 
import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer

def getInt():
    return 123

def getString():
    return 'ABC'
    
def getData():
    return {'ival': 123, 'sval': 'ABC'}

def getListOfInts():
    return [ 123, 456 ]

def getListOfStrings():
    return [ 'ABC', 'DEF' ]
    
def getListOfData():
    return [ {'ival': 123, 'sval': 'ABC'}, {'ival': 456, 'sval': 'DEF'} ]

def add(a, b):
    return a + b

def concat(a, b):
    return a + b

def modify(o):
    return { 'ival': o['ival'] + 1, 'sval': o['sval'] + 'X' }

server = SimpleXMLRPCServer(('localhost', 8002))
server.register_function(getInt, 'Test.getInt')
server.register_function(getString, 'Test.getString')
server.register_function(getData, 'Test.getData')
server.register_function(getListOfInts, 'Test.getListOfInts')
server.register_function(getListOfStrings, 'Test.getListOfStrings')
server.register_function(getListOfData, 'Test.getListOfData')
server.register_function(add, 'Test.add')
server.register_function(concat, 'Test.concat')
server.register_function(modify, 'Test.modify')
server.serve_forever()

