Refactoring of ScilabException in AST, exec, execstr.
[scilab.git] / scilab / modules / system_env / includes / configvariable.hxx
1 /*
2 *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 *  Copyright (C) 2008-2008 - DIGITEO - 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 __CONFIGVARIABLE_HXX__
14 #define __CONFIGVARIABLE_HXX__
15
16 #include <list>
17 #include <map>
18 #include <string>
19 #include "threadId.hxx"
20 #include "cell.hxx"
21
22 extern "C"
23 {
24 #include "dynlib_system_env.h"
25 #include "Thread_Wrapper.h"
26 }
27
28 class EXTERN_SYSTEM_ENV ConfigVariable
29 {
30     //module list
31 private :
32     static std::list<std::wstring> m_ModuleList;
33
34 public :
35     static void setModuleList(std::list<std::wstring>& _module_list);
36     static std::list<std::wstring> getModuleList();
37
38
39     //SCI
40 private :
41     static std::wstring m_SCIPath;
42
43 public :
44     static void setSCIPath(std::wstring& _SCIPath);
45     static std::wstring getSCIPath();
46
47     //SCIHOME
48 private :
49     static std::wstring m_SCIHOME;
50
51 public :
52     static void setSCIHOME(std::wstring& _m_SCIHOME);
53     static std::wstring getSCIHOME();
54
55     //TMPDIR
56 private :
57     static std::wstring m_TMPDIR;
58
59 public :
60     static void setTMPDIR(std::wstring& _TMPDIR);
61     static std::wstring getTMPDIR();
62
63     // Force Quit
64 private :
65     static bool m_bForceQuit;
66
67 public :
68     static void setForceQuit(bool _bForceQuit);
69     static bool getForceQuit(void);
70
71     // Exit Status
72 private :
73     static int m_iExitStatus;
74
75 public :
76     static void setExitStatus(int _iExitStatus);
77     static int getExitStatus(void);
78
79     // Digit precision, ex format function
80 private :
81     static int m_iFormat;
82
83 public :
84     static void setFormat(int _iFormat);
85     static int getFormat(void);
86
87
88     // Screen console width
89 private :
90     static int m_iConsoleWidth;
91
92 public :
93     static void setConsoleWidth(int _iConsoleWidth);
94     static int getConsoleWidth(void);
95
96     // Scilab mode
97 private :
98     static int m_iScilabMode;
99
100 public :
101     static void setScilabMode(int _iScilabMode);
102     static int getScilabMode(void);
103
104     //Warning mode
105 private :
106     static bool m_bWarningMode;
107
108 public :
109     static void setWarningMode(bool _bWarningMode);
110     static bool getWarningMode(void);
111
112     //HOME
113 private :
114     static std::wstring m_HOME;
115
116 public :
117     static void setHOME(std::wstring& _m_HOME);
118     static std::wstring getHOME();
119
120     //Clear last error information
121 public :
122     static void setLastErrorClear(void);
123
124     //Clear last error information
125 private :
126     static bool m_bLastErrorCall;
127 public :
128     static void setLastErrorCall(void);
129     static void clearLastError(void);
130
131     //Last Error Message
132 private :
133     static std::wstring m_wstError;
134
135 public :
136     static void setLastErrorMessage(std::wstring _wstError);
137     static std::wstring getLastErrorMessage();
138
139     //Last Error ID
140 private :
141     static int m_iError;
142
143 public :
144     static void setLastErrorNumber(int _iError);
145     static int getLastErrorNumber();
146
147     //Last Error Line
148 private :
149     static int m_iErrorLine;
150
151 public :
152     static void setLastErrorLine(int _iLine);
153     static int getLastErrorLine();
154
155     //Last Error Function
156 private :
157     static std::wstring m_wstErrorFunction;
158
159 public :
160     static void setLastErrorFunction(std::wstring _wstFunction);
161     static std::wstring getLastErrorFunction();
162
163     //Prompt Mode and Silent error
164 public :
165     /*
166     Prompt mode
167     normal = 0,
168     silent = -1,
169     prompt = 2,
170     exec = 1,
171     exec3 = 3,
172     step = 4,
173     step7 = 7
174     */
175
176     /*
177        show = 0
178        silent = 1
179     */
180 private :
181     static int m_iPromptMode;
182     static int m_iSilentError;
183
184 public :
185     static void setPromptMode(int _iPromptMode);
186     static int getPromptMode(void);
187     static void setSilentError(int _iSilentError);
188     static int getSilentError(void);
189
190     //Thread List
191
192 private :
193     static std::list<types::ThreadId*> m_threadList;
194 public :
195
196     static types::ThreadId* getThread(__threadKey _key);
197     static types::ThreadId* getLastRunningThread();
198     static types::ThreadId* getLastPausedThread();
199     static types::ThreadId* getLastThread();
200
201     static types::Cell* getAllThreads(void);
202     static void addThread(types::ThreadId* _thread);
203     static void deleteThread(__threadKey _key);
204
205     // Pause level
206 private :
207     static int m_iPauseLevel;
208
209 public :
210     static void IncreasePauseLevel();
211     static void DecreasePauseLevel();
212     static int getPauseLevel();
213
214
215 };
216
217 #endif /* __CONFIGVARIABLE_HXX__ */