26#ifndef MYSQLHARNESS_TTY_INCLUDED 
   27#define MYSQLHARNESS_TTY_INCLUDED 
   29#include "harness_export.h" 
   42class HARNESS_EXPORT 
Tty {
 
   50  static fd_type fd_from_stream(std::ostream &os);
 
   51  static fd_type fd_from_stream(std::istream &is);
 
   57    } 
catch (
const std::system_error &) {
 
   72      } 
catch (
const std::system_error &) {
 
   84        static constexpr const size_t kEcho = ENABLE_ECHO_INPUT;
 
   85        static constexpr const size_t kExtendedFlags = ENABLE_EXTENDED_FLAGS;
 
   86        static constexpr const size_t kInsertMode = ENABLE_INSERT_MODE;
 
   87        static constexpr const size_t kLineInput = ENABLE_LINE_INPUT;
 
   88        static constexpr const size_t kMouseInput = ENABLE_MOUSE_INPUT;
 
   89        static constexpr const size_t kProcessedInput = ENABLE_PROCESSED_INPUT;
 
   90        static constexpr const size_t kQuickEditMode = ENABLE_QUICK_EDIT_MODE;
 
   91        static constexpr const size_t kWindowInput = ENABLE_WINDOW_INPUT;
 
   92#if VER_PRODUCTBUILD >= 10011 
   94        static constexpr const size_t kVirtualTerminalInput =
 
   95            ENABLE_VIRTUAL_TERMINAL_INPUT;
 
  100        static constexpr const size_t kProcessedOutput =
 
  101            ENABLE_PROCESSED_OUTPUT;
 
  102        static constexpr const size_t kWrapAtEolOutput =
 
  103            ENABLE_WRAP_AT_EOL_OUTPUT;
 
  104#if VER_PRODUCTBUILD >= 10011 
  106        static constexpr const size_t kVirtualTerminalProcessing =
 
  107            ENABLE_VIRTUAL_TERMINAL_PROCESSING;
 
  108        static constexpr const size_t kDisableNewlineAutoReturn =
 
  109            DISABLE_NEWLINE_AUTO_RETURN;
 
  110        static constexpr const size_t kLvbGridWorldwide =
 
  111            ENABLE_LVB_GRID_WORLDWIDE;
 
  120        static constexpr const size_t kGenerateSignal = ISIG;
 
  121        static constexpr const size_t kCanonicalMode = ICANON;
 
  124        static constexpr const size_t kConvertCase = XCASE;
 
  126        static constexpr const size_t kEcho = 
ECHO;
 
  127        static constexpr const size_t kEchoWithErase = ECHOE;
 
  128        static constexpr const size_t kEchoWithKill = ECHOK;
 
  129        static constexpr const size_t kEchoWithNewline = ECHONL;
 
  130        static constexpr const size_t kEchoWithControl = ECHOCTL;
 
  131        static constexpr const size_t kEchoWithPrint = ECHOPRT;
 
  132        static constexpr const size_t kEchoWithKillEares = ECHOKE;
 
  134        static constexpr const size_t kOutputFlushed = FLUSHO;
 
  135        static constexpr const size_t kNoFlush = NOFLSH;
 
  136        static constexpr const size_t kToStop = TOSTOP;
 
  137        static constexpr const size_t kPending = PENDIN;
 
  138        static constexpr const size_t kExtendedInputProcessing = IEXTEN;
 
  144        static constexpr const size_t kBaudSpeedMask = CBAUD;
 
  148        static constexpr const size_t kBaudSpeedMaskExtra = CBAUDEX;
 
  152        static constexpr const size_t kInputBaudSpeedMaskExtra = CIBAUDEX;
 
  154        static constexpr const size_t kCharacterSizeMask = CSIZE;
 
  155        static constexpr const size_t kTwoStopBits = CSTOPB;
 
  156        static constexpr const size_t kEnableReceiver = CREAD;
 
  157        static constexpr const size_t kParityCheckGenerator = PARENB;
 
  158        static constexpr const size_t kParityOdd = PARODD;
 
  159        static constexpr const size_t kHangupOnClose = HUPCL;
 
  160        static constexpr const size_t kIgnoreControlLines = CLOCAL;
 
  162        static constexpr const size_t kBlockOutputNonCurrentShellLayer = LOBLK;
 
  166        static constexpr const size_t kInputSpeedMask = CIBAUD;
 
  170        static constexpr const size_t kStickParity = CMSPAR;
 
  174        static constexpr const size_t kEnableSoftFlowControl = CRTSXOFF;
 
  176        static constexpr const size_t kEnableHardFlowControl = CRTSCTS;
 
  180        static constexpr const size_t kOutputProcessing = OPOST;
 
  181        static constexpr const size_t kMapNewlineCarriageReturn = ONLCR;
 
  184        static constexpr const size_t kMapLowercaseUppercase = OLCUC;
 
  186        static constexpr const size_t kMapCarriageReturnNewline = OCRNL;
 
  187        static constexpr const size_t kNoOutputCarriageReturnOnColumnZero =
 
  189        static constexpr const size_t kNoOutputCarriageReturn = ONLRET;
 
  192        static constexpr const size_t kSendFillCharacter = OFILL;
 
  196        static constexpr const size_t kFillCharacterIsDelete = OFDEL;
 
  200        static constexpr const size_t kNewlineDelayMask = NLDLY;
 
  204        static constexpr const size_t kCarriangeReturnDelayMask = CRDLY;
 
  206        static constexpr const size_t kHorizontalTabDelayMask = TABDLY;
 
  209        static constexpr const size_t kBackspaceDelayMask = BSDLY;
 
  213        static constexpr const size_t kVerticalTabDelayMask = VTDLY;
 
  217        static constexpr const size_t kFormfeedDelayMask = FFDLY;
 
  222        static constexpr const size_t kIgnoreBreak = IGNBRK;
 
  223        static constexpr const size_t kBreakInt = BRKINT;
 
  224        static constexpr const size_t kIgnoreParityError = IGNPAR;
 
  225        static constexpr const size_t kParityErrorMark = PARMRK;
 
  226        static constexpr const size_t kInputParityChecking = INPCK;
 
  227        static constexpr const size_t kStripCharacter = ISTRIP;
 
  228        static constexpr const size_t kMapNewlineCarriageReturn = INLCR;
 
  229        static constexpr const size_t kIgnoreCarriageReturn = IGNCR;
 
  230        static constexpr const size_t kMapCarriageReturnNewline = ICRNL;
 
  233        static constexpr const size_t kMapUppercaseLowercase = IUCLC;
 
  235        static constexpr const size_t kStartStopOutputControl = IXON;
 
  236        static constexpr const size_t kAnyCharacterRestartOutput = IXANY;
 
  237        static constexpr const size_t kStartStopInputControl = IXOFF;
 
  238        static constexpr const size_t kEchoBellOnInputLong = IMAXBEL;
 
  241        static constexpr const size_t kInputIsUtf8 = IUTF8;
 
  265  bool is_saved_{
false};
 
Tty(fd_type fd)
Definition: tty.h:53
Tty & operator=(const Tty &)=delete
fd_type fd_
Definition: tty.h:263
state_type state_
Definition: tty.h:264
int fd_type
Definition: tty.h:44
void restore_attrs()
Definition: tty.h:254
termios state_type
Definition: tty.h:48
~Tty()
restore the state of the Tty if we changed it.
Definition: tty.h:68
#define ECHO
Definition: lexyy.cc:1051
#define window_size
Definition: log_event.cc:176