#!/usr/bin/python

from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler

class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2',)
    

server = SimpleXMLRPCServer(("0.0.0.0", 8000),
                            requestHandler=RequestHandler)

server.register_introspection_functions()


class MyMessages:
    # will hold the text of messages
    # messages should be a tuple of ('type','content')

    messages = []
    
    def num_messages(self):
        print "XXX: num_messages"
        return len(self.messages)
    
    def get_messages(self):
        print "XXX: get_messages"
        return self.messages
    
    def next_message(self):
        print "XXX: next_message"
        if len(self.messages):
            return self.messages.pop()            
        else:
            return (None,None)

    def add_message(self, domain='test domain', content='test content'):
        print "XXX: add_message"
        print "Adding: ", (domain,content)
        self.messages.append((domain,content))
        return True

print "Registering MyMessages"
server.register_instance(MyMessages())
print "Serving on port 8000"
server.serve_forever()
# m = MyMessages()
# m.add_message()
# m.next_message()
