'Create a factory for the given protocol.
It sets the C{protocol} attribute and returns the constructed factory
instance.
@param protocol: A L{Protocol} subclass
@param args: Positional arguments for the factory.
@param kwargs: Keyword arguments for the factory.
@return: A L{Factory} instance wired up to C{protocol}.'

@classmethod
def forProtocol(cls, protocol, *args, **kwargs):

    factory = cls(*args, **kwargs)
    factory.protocol = protocol
    return factory
