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