'Get the sync for a client if we have new data for it now. Otherwise
wait for new data to arrive on the server. If the timeout expires, then
return an empty sync result.
Returns:
A Deferred SyncResult.'

def wait_for_sync_for_user(self, sync_config, since_token=None, timeout=0, full_state=False):

    result = self.response_cache.get(sync_config.request_key)
    if (not result):
        result = self.response_cache.set(sync_config.request_key, self._wait_for_sync_for_user(sync_config, since_token, timeout, full_state))
    return result
