code: def _call(self, context):
          req = context.request
          if not req.has_key("method"):
              raise RpcException(ERR_INVALID_REQ, "Invalid Request. No 'method'.")
          method = req["method"]
          if method == "barrister-idl":
              return self.contract.idl_parsed
          iface_name, func_name = unpack_method(method)
          if self.handlers.has_key(iface_name):
              iface_impl = self.handlers[iface_name]
              func = getattr(iface_impl, func_name)
              if func:
                  if req.has_key("params"):
                      params = req["params"]
                  else:
                      params = [ ]
                  if self.validate_req:
                      self.contract.validate_request(iface_name, func_name, params)
                  if hasattr(iface_impl, "barrister_pre"):
                      pre_hook = getattr(iface_impl, "barrister_pre")
                      pre_hook(context, params)
                  if params:
                      result = func(*params)
                  else:
                      result = func()
                  if self.validate_resp:
                      self.contract.validate_response(iface_name, func_name, result)
                  return result
              else:
                  msg = "Method '%s' not found" % (method)
                  raise RpcException(ERR_METHOD_NOT_FOUND, msg)
          else:
              msg = "No implementation of '%s' found" % (iface_name)
              raise RpcException(ERR_METHOD_NOT_FOUND, msg)