'Reschedule this call for a later time
@type secondsLater: C{float}
@param secondsLater: The number of seconds after the originally
scheduled time for which to reschedule this call.
@raise AlreadyCancelled: Raised if this call has been cancelled.
@raise AlreadyCalled: Raised if this call has already been made.'

def delay(self, secondsLater):

    if self.cancelled:
        raise error.AlreadyCancelled
    elif self.called:
        raise error.AlreadyCalled
    else:
        self.delayed_time += secondsLater
        if (self.delayed_time < 0):
            self.activate_delay()
            self.resetter(self)
