1*30fdc8d8SChris Lattner //===-- CommandObjectQuit.h -------------------------------------*- C++ -*-===// 2*30fdc8d8SChris Lattner // 3*30fdc8d8SChris Lattner // The LLVM Compiler Infrastructure 4*30fdc8d8SChris Lattner // 5*30fdc8d8SChris Lattner // This file is distributed under the University of Illinois Open Source 6*30fdc8d8SChris Lattner // License. See LICENSE.TXT for details. 7*30fdc8d8SChris Lattner // 8*30fdc8d8SChris Lattner //===----------------------------------------------------------------------===// 9*30fdc8d8SChris Lattner 10*30fdc8d8SChris Lattner #ifndef liblldb_CommandObjectQuit_h_ 11*30fdc8d8SChris Lattner #define liblldb_CommandObjectQuit_h_ 12*30fdc8d8SChris Lattner 13*30fdc8d8SChris Lattner // C Includes 14*30fdc8d8SChris Lattner // C++ Includes 15*30fdc8d8SChris Lattner // Other libraries and framework includes 16*30fdc8d8SChris Lattner // Project includes 17*30fdc8d8SChris Lattner #include "lldb/Interpreter/CommandObject.h" 18*30fdc8d8SChris Lattner 19*30fdc8d8SChris Lattner namespace lldb_private { 20*30fdc8d8SChris Lattner 21*30fdc8d8SChris Lattner //------------------------------------------------------------------------- 22*30fdc8d8SChris Lattner // CommandObjectQuit 23*30fdc8d8SChris Lattner //------------------------------------------------------------------------- 24*30fdc8d8SChris Lattner 25*30fdc8d8SChris Lattner // SPECIAL NOTE!! The CommandObjectQuit is special, because the actual function to execute 26*30fdc8d8SChris Lattner // when the user types 'quit' is passed (via function pointer) to the Command Interpreter when it 27*30fdc8d8SChris Lattner // is constructed. The function pointer is then stored in this CommandObjectQuit, and is invoked 28*30fdc8d8SChris Lattner // via the CommandObjectQuit::Execute function. This is the only command object that works this 29*30fdc8d8SChris Lattner // way; it was done this way because different Command Interpreter callers may want or need different things 30*30fdc8d8SChris Lattner // to be done in order to shut down properly. 31*30fdc8d8SChris Lattner 32*30fdc8d8SChris Lattner class CommandObjectQuit : public CommandObject 33*30fdc8d8SChris Lattner { 34*30fdc8d8SChris Lattner public: 35*30fdc8d8SChris Lattner 36*30fdc8d8SChris Lattner CommandObjectQuit (); 37*30fdc8d8SChris Lattner 38*30fdc8d8SChris Lattner virtual 39*30fdc8d8SChris Lattner ~CommandObjectQuit (); 40*30fdc8d8SChris Lattner 41*30fdc8d8SChris Lattner virtual bool 42*30fdc8d8SChris Lattner Execute (Args& command, 43*30fdc8d8SChris Lattner CommandContext *context, 44*30fdc8d8SChris Lattner CommandInterpreter *interpreter, 45*30fdc8d8SChris Lattner CommandReturnObject &result); 46*30fdc8d8SChris Lattner 47*30fdc8d8SChris Lattner }; 48*30fdc8d8SChris Lattner 49*30fdc8d8SChris Lattner } // namespace lldb_private 50*30fdc8d8SChris Lattner 51*30fdc8d8SChris Lattner #endif // liblldb_CommandObjectQuit_h_ 52