GPL + CeCILL Header change
[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  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  * === LICENSE_END ===
14  *
15  */
16
17 #ifndef __ABSTRACT_DEBUGGER_HXX__
18 #define __ABSTRACT_DEBUGGER_HXX__
19
20 #include <string>
21 #include <vector>
22
23 extern "C"
24 {
25 #include "dynlib_ast.h"
26 }
27
28
29 namespace debugger
30 {
31 class EXTERN_AST AbstractDebugger
32 {
33 public:
34     AbstractDebugger() {}
35     virtual ~AbstractDebugger() {}
36
37     //interface
38     virtual void onStop(int index) = 0; //when a bp is trigger
39     virtual void onResume() = 0;//when "play" is trigger
40     virtual void onAbort() = 0;//when execution is abort
41     virtual void onErrorInFile(const std::wstring& filemane) = 0;//when an error is trigger in a file
42     virtual void onErrorInScript(const std::wstring& funcname) = 0;//when an error is trigger in a script
43     virtual void onQuit() = 0; //when debugger is killed or replace by another one
44
45     virtual void updateBreakpoints() = 0;
46
47 };
48
49 typedef std::vector<AbstractDebugger*> Debuggers;
50 }
51 #endif /* !__ABSTRACT_DEBUGGER_HXX__ */