code: def introspectRemoteObject(self, busName, objectPath,
                                 replaceKnownInterfaces=False):
          
          d = self.callRemote(
              objectPath,
              'Introspect',
              interface='org.freedesktop.DBus.Introspectable',
              destination=busName,
          )
  
          def ok(xml_str):
              return introspection.getInterfacesFromXML(
                  xml_str,
                  replaceKnownInterfaces
              )
  
          def err(e):
              raise error.IntrospectionFailed(
                  'Introspection Failed: ' + e.getErrorMessage()
              )
  
          d.addCallbacks(ok, err)
  
          return d
docs: Calls org.freedesktop.DBus.Introspectable.Introspect
  
          @type busName: C{string}
          @param busName: Name of the bus containing the object
  
          @type objectPath: C{string}
          @param objectPath: Object Path to introspect
  
          @type replaceKnownInterfaces: C{bool}
          @param replaceKnownInterfaces: If True (defaults to False), the content
              of the introspected XML will override any pre-existing definitions
              of the contained interfaces.
  
          @rtype: L{twisted.internet.defer.Deferred}
          @returns: a Deferred to a list of L{interface.DBusInterface} instances
              created from the content of the introspected XML description of the
              object's interface.