'Reschedule this call for a different time
@type secondsFromNow: C{float}
@param secondsFromNow: The number of seconds from the time of the
C{reset} call at which this call will be scheduled.
@raise AlreadyCancelled: Raised if this call has been cancelled.
@raise AlreadyCalled: Raised if this call has already been made.'

def reset(self, secondsFromNow):

    if self.cancelled:
        raise error.AlreadyCancelled
    elif self.called:
        raise error.AlreadyCalled
    else:
        newTime = (self.seconds() + secondsFromNow)
        if (newTime < self.time):
            self.delayed_time = 0
            self.time = newTime
            self.resetter(self)
        else:
            self.delayed_time = (newTime - self.time)
