def connectCached(self, endpoint, protocolFactory,
                      extraWork=lambda x: x,
                      extraHash=None):
        """
        See module docstring

        @param endpoint:
        @param protocolFactory:
        @param extraWork:
        @param extraHash:

        @return: the D
        """
        key = endpoint, extraHash
        D = Deferred()
        if key in self.cachedConnections:
            D.callback(self.cachedConnections[key])
        elif key in self.inProgress:
            self.inProgress[key].append(D)
        else:
            self.inProgress[key] = [D]
            endpoint.connect(
                _CachingClientFactory(
                    self, key, protocolFactory,
                    extraWork))
        return D
def connectCached ( self , endpoint , protocolFactory , extraWork = lambda x : x , extraHash = None ) : key = endpoint , extraHash D = Deferred ( ) if key in self . cachedConnections : D . callback ( self . cachedConnections [ key ] ) elif key in self . inProgress : self . inProgress [ key ] . append ( D ) else : self . inProgress [ key ] = [ D ] endpoint . connect ( _CachingClientFactory ( self , key , protocolFactory , extraWork ) ) return D
See module docstring

        @param endpoint:
        @param protocolFactory:
        @param extraWork:
        @param extraHash:

        @return: the D