| //===-- MICmdCmdMiscellanous.h ----------------------------------*- C++ -*-===// | 
 | // | 
 | //                     The LLVM Compiler Infrastructure | 
 | // | 
 | // This file is distributed under the University of Illinois Open Source | 
 | // License. See LICENSE.TXT for details. | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 |  | 
 | // Overview:    CMICmdCmdGdbExit                interface. | 
 | //              CMICmdCmdListThreadGroups       interface. | 
 | //              CMICmdCmdInterpreterExec        interface. | 
 | //              CMICmdCmdInferiorTtySet         interface. | 
 | // | 
 | //              To implement new MI commands derive a new command class from the | 
 | //              command base | 
 | //              class. To enable the new command for interpretation add the new | 
 | //              command class | 
 | //              to the command factory. The files of relevance are: | 
 | //                  MICmdCommands.cpp | 
 | //                  MICmdBase.h / .cpp | 
 | //                  MICmdCmd.h / .cpp | 
 | //              For an introduction to adding a new command see | 
 | //              CMICmdCmdSupportInfoMiCmdQuery | 
 | //              command class as an example. | 
 |  | 
 | #pragma once | 
 |  | 
 | // Third party headers: | 
 | #include "lldb/API/SBCommandReturnObject.h" | 
 |  | 
 | // In-house headers: | 
 | #include "MICmdBase.h" | 
 | #include "MICmnMIValueList.h" | 
 | #include "MICmnMIValueTuple.h" | 
 |  | 
 | //++ | 
 | //============================================================================ | 
 | // Details: MI command class. MI commands derived from the command base class. | 
 | //          *this class implements MI command "gdb-exit". | 
 | //-- | 
 | class CMICmdCmdGdbExit : public CMICmdBase { | 
 |   // Statics: | 
 | public: | 
 |   // Required by the CMICmdFactory when registering *this command | 
 |   static CMICmdBase *CreateSelf(); | 
 |  | 
 |   // Methods: | 
 | public: | 
 |   /* ctor */ CMICmdCmdGdbExit(); | 
 |  | 
 |   // Overridden: | 
 | public: | 
 |   // From CMICmdInvoker::ICmd | 
 |   bool Execute() override; | 
 |   bool Acknowledge() override; | 
 |   // From CMICmnBase | 
 |   /* dtor */ ~CMICmdCmdGdbExit() override; | 
 | }; | 
 |  | 
 | //++ | 
 | //============================================================================ | 
 | // Details: MI command class. MI commands derived from the command base class. | 
 | //          *this class implements MI command "list-thread-groups". | 
 | //          This command does not follow the MI documentation exactly. | 
 | //          http://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Miscellaneous-Commands.html#GDB_002fMI-Miscellaneous-Commands | 
 | //-- | 
 | class CMICmdCmdListThreadGroups : public CMICmdBase { | 
 |   // Statics: | 
 | public: | 
 |   // Required by the CMICmdFactory when registering *this command | 
 |   static CMICmdBase *CreateSelf(); | 
 |  | 
 |   // Methods: | 
 | public: | 
 |   /* ctor */ CMICmdCmdListThreadGroups(); | 
 |  | 
 |   // Overridden: | 
 | public: | 
 |   // From CMICmdInvoker::ICmd | 
 |   bool Execute() override; | 
 |   bool Acknowledge() override; | 
 |   bool ParseArgs() override; | 
 |   // From CMICmnBase | 
 |   /* dtor */ ~CMICmdCmdListThreadGroups() override; | 
 |  | 
 |   // Typedefs: | 
 | private: | 
 |   typedef std::vector<CMICmnMIValueTuple> VecMIValueTuple_t; | 
 |  | 
 |   // Attributes: | 
 | private: | 
 |   bool m_bIsI1; // True = Yes command argument equal "i1", false = no match | 
 |   bool m_bHaveArgOption;  // True = Yes "--available" present, false = not found | 
 |   bool m_bHaveArgRecurse; // True = Yes command argument "--recurse", false = no | 
 |                           // found | 
 |   VecMIValueTuple_t m_vecMIValueTuple; | 
 |   const CMIUtilString m_constStrArgNamedAvailable; | 
 |   const CMIUtilString m_constStrArgNamedRecurse; | 
 |   const CMIUtilString m_constStrArgNamedGroup; | 
 |   const CMIUtilString m_constStrArgNamedThreadGroup; | 
 | }; | 
 |  | 
 | //++ | 
 | //============================================================================ | 
 | // Details: MI command class. MI commands derived from the command base class. | 
 | //          *this class implements MI command "interpreter-exec". | 
 | //-- | 
 | class CMICmdCmdInterpreterExec : public CMICmdBase { | 
 |   // Statics: | 
 | public: | 
 |   // Required by the CMICmdFactory when registering *this command | 
 |   static CMICmdBase *CreateSelf(); | 
 |  | 
 |   // Methods: | 
 | public: | 
 |   /* ctor */ CMICmdCmdInterpreterExec(); | 
 |  | 
 |   // Overridden: | 
 | public: | 
 |   // From CMICmdInvoker::ICmd | 
 |   bool Execute() override; | 
 |   bool Acknowledge() override; | 
 |   bool ParseArgs() override; | 
 |   // From CMICmnBase | 
 |   /* dtor */ ~CMICmdCmdInterpreterExec() override; | 
 |  | 
 |   // Attributes: | 
 | private: | 
 |   const CMIUtilString m_constStrArgNamedInterpreter; | 
 |   const CMIUtilString m_constStrArgNamedCommand; | 
 |   lldb::SBCommandReturnObject m_lldbResult; | 
 | }; | 
 |  | 
 | //++ | 
 | //============================================================================ | 
 | // Details: MI command class. MI commands derived from the command base class. | 
 | //          *this class implements MI command "inferior-tty-set". | 
 | //-- | 
 | class CMICmdCmdInferiorTtySet : public CMICmdBase { | 
 |   // Statics: | 
 | public: | 
 |   // Required by the CMICmdFactory when registering *this command | 
 |   static CMICmdBase *CreateSelf(); | 
 |  | 
 |   // Methods: | 
 | public: | 
 |   /* ctor */ CMICmdCmdInferiorTtySet(); | 
 |  | 
 |   // Overridden: | 
 | public: | 
 |   // From CMICmdInvoker::ICmd | 
 |   bool Execute() override; | 
 |   bool Acknowledge() override; | 
 |   // From CMICmnBase | 
 |   /* dtor */ ~CMICmdCmdInferiorTtySet() override; | 
 | }; |