class PageStorageClient(object):
    def __init__(self, server_address=("127.0.0.1", 9966)):
        self.server_address = server_address
        self.server_proxy = XMLRPCServerProxy(
            "http://%s:%s/" % self.server_address,
            allow_none=True)


    def get_page(self, target_url):
        return decode_from_binary(self.server_proxy.get_page(target_url))


    def get_page_by_id(self, page_id):
        return decode_from_binary(self.server_proxy.get_page_by_id(page_id))


    def set_page(self, page_info):
        return self.server_proxy.set_page(encode_to_binary(page_info))


    def remove_page(self, target):
        return self.server_proxy.remove_page(encode_to_binary(target))


    def __contains__(self, key):
        return self.server_proxy.has_key(key)


    def has_key(self, key):
        return self.__contains__(key)