Command line debugger first version
[scilab.git] / scilab / modules / ast / includes / ast / abstractdebugger.hxx
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 #ifndef __ABSTRACT_DEBUGGER_HXX__
14 #define __ABSTRACT_DEBUGGER_HXX__
15
16 #include <string>
17 #include <vector>
18
19 extern "C"
20 {
21 #include "dynlib_ast.h"
22 }
23
24
25 namespace debugger
26 {
27 class EXTERN_AST AbstractDebugger
28 {
29 public:
30     AbstractDebugger() {}
31     virtual ~AbstractDebugger() {}
32
33     //interface
34     virtual void onStop(int index) = 0; //when a bp is trigger
35     virtual void onResume() = 0;//when "play" is trigger
36     virtual void onAbort() = 0;//when execution is abort
37     virtual void onErrorInFile(const std::wstring& filemane) = 0;//when an error is trigger in a file
38     virtual void onErrorInScript(const std::wstring& funcname) = 0;//when an error is trigger in a script
39     virtual void onQuit() = 0; //when debugger is killed or replace by another one
40
41     virtual void updateBreakpoints() = 0;
42
43 };
44
45 typedef std::vector<AbstractDebugger*> Debuggers;
46 }
47 #endif /* !__ABSTRACT_DEBUGGER_HXX__ */