def METHOD_NAME(self, autoreset=True):
    """
    Return the next event from a JobEventWatchFuture, or None
    if the event stream has terminated.
    The future is auto-reset unless autoreset=False, so a subsequent
    call to get_event() will try to fetch the next event and thus
    may block.
    """
    result = ffi.new("char *[1]")
    try:
        #  Block until Future is ready:
        self.wait_for()
        RAW.event_watch_get(self.pimpl, result)
    except OSError as exc:
        if exc.errno == errno.ENODATA:
            self.needs_cancel = False
            return None
        # raise handle exception if there is one
        self.raise_if_handle_exception()
        # re-raise all other exceptions
        #
        # Note: overwrite generic OSError strerror string with the
        # EventWatch future error string to give the caller appropriate
        # detail (e.g. instead of "No such file or directory" use
        # "job <jobid> does not exist"
        #
        exc.strerror = self.error_string()
        raise
    event = EventLogEvent(ffi.string(result[0]).decode("utf-8"))
    if autoreset is True:
        self.reset()
    return event