'Run all success callbacks that have been added to this L{Deferred}.
Each callback will have its result passed as the first argument to
the next; this way, the callbacks act as a \'processing chain\'.  If
the success-callback returns a L{Failure} or raises an L{Exception},
processing will continue on the *error* callback chain.  If a
callback (or errback) returns another L{Deferred}, this L{Deferred}
will be chained to it (and further callbacks will not run until that
L{Deferred} has a result).
An instance of L{Deferred} may only have either L{callback} or
L{errback} called on it, and only once.
@param result: The object which will be passed to the first callback
added to this L{Deferred} (via L{addCallback}).
@raise AlreadyCalledError: If L{callback} or L{errback} has already been
called on this L{Deferred}.'

def callback(self, result):

    assert (not isinstance(result, Deferred))
    self._startRunCallbacks(result)
