Skip to content
  1. May 02, 2011
    • Caroline Tice's avatar
      · 969ed3d1
      Caroline Tice authored
      This patch captures and serializes all output being written by the
      command line driver, including the lldb prompt being output by
      editline, the asynchronous process output & error messages, and
      asynchronous messages written by target stop-hooks.
      
      As part of this it introduces a new Stream class,
      StreamAsynchronousIO.  A StreamAsynchronousIO object is created with a
      broadcaster, who will eventually broadcast the stream's data for a
      listener to handle, and an event type indicating what type of event
      the broadcaster will broadcast.  When the Write method is called on a
      StreamAsynchronousIO object, the data is appended to an internal
      string.  When the Flush method is called on a StreamAsynchronousIO
      object, it broadcasts it's data string and clears the string.
      
      Anything in lldb-core that needs to generate asynchronous output for
      the end-user should use the StreamAsynchronousIO objects.
      
      I have also added a new notification type for InputReaders, to let
      them know that a asynchronous output has been written. This is to
      allow the input readers to, for example, refresh their prompts and
      lines, if desired.  I added the case statements to all the input
      readers to catch this notification, but I haven't added any code for
      handling them yet (except to the IOChannel input reader).
      
      llvm-svn: 130721
      969ed3d1
Loading