def installResolver(self, resolver): """ See L{IReactorPluggableResolver}. @param resolver: see L{IReactorPluggableResolver}. @return: see L{IReactorPluggableResolver}. """ assert IResolverSimple.providedBy(resolver) oldResolver = self.resolver self.resolver = resolver self._nameResolver = _SimpleResolverComplexifier(resolver) return oldResolver
class PluggableResolverMixin(object): """ A mixin which implements the pluggable resolver reactor interfaces. @ivar resolver: The installed L{IResolverSimple}. @ivar _nameResolver: The installed L{IHostnameResolver}. """ resolver = BlockingResolver() _nameResolver = _SimpleResolverComplexifier(resolver) # IReactorPluggableResolver def installResolver(self, resolver): """ See L{IReactorPluggableResolver}. @param resolver: see L{IReactorPluggableResolver}. @return: see L{IReactorPluggableResolver}. """ assert IResolverSimple.providedBy(resolver) oldResolver = self.resolver self.resolver = resolver self._nameResolver = _SimpleResolverComplexifier(resolver) return oldResolver # IReactorPluggableNameResolver def installNameResolver(self, resolver): """ See L{IReactorPluggableNameResolver}. @param resolver: See L{IReactorPluggableNameResolver}. @return: see L{IReactorPluggableNameResolver}. """ previousNameResolver = self._nameResolver self._nameResolver = resolver self.resolver = _ComplexResolverSimplifier(resolver) return previousNameResolver @property def nameResolver(self): """ Implementation of read-only L{IReactorPluggableNameResolver.nameResolver}. """ return self._nameResolver