class SimilarityServer(resource.Resource):
    def __init__(self):
        resource.Resource.__init__(self)
        self.methods = server_interface(self)
        self.isLeaf = False
        self.gaia = GaiaWrapper(indexing_only_mode=True)
        self.request = None

    def error(self, message):
        return json.dumps({'Error': message})

    def getChild(self, name, request):
        return self

    def render_GET(self, request):
        return self.methods[request.prepath[1]](request=request,
                                                **request.args)

    def add_point(self, request, location, sound_id):
        return json.dumps(self.gaia.add_point(location[0], sound_id[0]))

    def save(self, request, filename=None):
        if not filename:
            filename = [sim_settings.INDEXING_SERVER_INDEX_NAME]
        return json.dumps(self.gaia.save_index(filename[0]))

    def reload_gaia_wrapper(self, request):
        self.gaia = GaiaWrapper(indexing_only_mode=True)
        return json.dumps({'error': False, 'result': 'Gaia wrapper reloaded!'})

    def clear_memory(self, request):
        # Then clear the memory
        return json.dumps(self.gaia.clear_index_memory())
class SimilarityServer(resource.Resource):
    def __init__(self):
        resource.Resource.__init__(self)
        self.methods = server_interface(self)
        self.isLeaf = False
        self.gaia = GaiaWrapper(indexing_only_mode=True)
        self.request = None

    def error(self,message):
        return json.dumps({'Error': message})

    def getChild(self, name, request):
        return self

    def render_GET(self, request):
        return self.methods[request.prepath[1]](request=request, **request.args)

    def add_point(self, request, location, sound_id):
        return json.dumps( self.gaia.add_point(location[0],sound_id[0]))

    def save(self, request, filename=None):
        if not filename:
            filename = [INDEXING_SERVER_INDEX_NAME]
        return json.dumps(self.gaia.save_index(filename[0]))

    def reload_gaia_wrapper(self, request):
        self.gaia = GaiaWrapper(indexing_only_mode=True)
        return json.dumps({'error': False, 'result': 'Gaia wrapper reloaded!'})

    def clear_memory(self, request):
        # Then clear the memory
        return json.dumps(self.gaia.clear_index_memory())