'Wait for the call to complete, and call callback if needed.
This and wait_any()/wait_all() are the only time callback
functions may be called.  (However, note that check_success() and
get_result() call wait().)  Waiting for one RPC will not cause
callbacks for other RPCs to be called.  Callback functions may
call check_success() and get_result().
Callbacks are called without arguments; if a callback needs access
to the RPC object a Python nested function (a.k.a. closure) or a
bound may be used.  To facilitate this, the callback may be
assigned after the RPC object is created (but before make_call()
is called).
Note: don\'t confuse callbacks with get-result hooks or precall
and postcall hooks.'

def wait(self):

    assert (self.__rpc.state != apiproxy_rpc.RPC.IDLE), repr(self.state)
    if (self.__rpc.state == apiproxy_rpc.RPC.RUNNING):
        self.__rpc.Wait()
    assert (self.__rpc.state == apiproxy_rpc.RPC.FINISHING), repr(self.state)
    self.__call_user_callback()
