def handle()

in debugger/src/main/scala/org.apache.daffodil.debugger.dap/DAPodil.scala [167:198]


  def handle(request: Request): IO[Unit] =
    // TODO: java-debug doesn't seem to support the Restart request
    request match {
      case extract(Command.INITIALIZE, _) => initialize(request)
      case extract(Command.CONFIGURATIONDONE, _) =>
        session.sendResponse(request.respondSuccess())
      case extract(Command.LAUNCH, _) =>
        // We ignore the java-debug LaunchArguments because it is overspecialized for JVM debugging, and parse our own.
        launch(request)
      case _ if request.command == "loadedSources" =>
        // the loadedSources command isn't supported by java-debug, so we parse it ourselves
        loadedSources(request)
      case extract(Command.SOURCE, args: SourceArguments) =>
        source(request, args)
      case extract(Command.SETBREAKPOINTS, args: SetBreakpointArguments) =>
        setBreakpoints(request, args)
      case extract(Command.THREADS, _)    => threads(request)
      case extract(Command.STACKTRACE, _) => stackTrace(request)
      case extract(Command.SCOPES, args: ScopesArguments) =>
        scopes(request, args)
      case extract(Command.VARIABLES, args: VariablesArguments) =>
        variables(request, args)
      case extract(Command.NEXT, _)     => next(request)
      case extract(Command.CONTINUE, _) => continue(request)
      case extract(Command.PAUSE, _)    => pause(request)
      case extract(Command.DISCONNECT, args: DisconnectArguments) =>
        disconnect(request, args)
      case extract(Command.EVALUATE, args: EvaluateArguments) =>
        eval(request, args)
      case _ =>
        session.abort(ErrorEvent.UnhandledRequest(show"unhandled request $request"), show"unhandled request $request")
    }