'Get all necessary metadata to keep a clientside cache.'

def getStateToCacheAndObserveFor(self, perspective, observer):

    if perspective:
        pname = perspective.perspectiveName
        sname = perspective.getService().serviceName
    else:
        pname = 'None'
        sname = 'None'
    return {'remote': flavors.ViewPoint(perspective, self), 'publishedID': self.publishedID, 'perspective': pname, 'service': sname, 'timestamp': self.timestamp}
