History manager added.
[scilab.git] / scilab / modules / history_manager / includes / HistoryManager.h
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2007-2008 - INRIA - Allan CORNET
4 * Copyright (C) 2010 - DIGITEO - Allan CORNET
5 *
6 * This file must be used under the terms of the CeCILL.
7 * This source file is licensed as described in the file COPYING, which
8 * you should have received as part of this distribution.  The terms
9 * are also available at
10 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
11 *
12 */
13
14 /*------------------------------------------------------------------------*/
15 #ifndef __HISTORYMANAGER_C_H__
16 #define __HISTORYMANAGER_C_H__
17 #include "BOOL.h"
18 #include "dynlib_history_manager.h"
19 /*------------------------------------------------------------------------*/
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 /*------------------------------------------------------------------------*/
24 /**
25 * get history manager state
26 * @return TRUE or FALSE
27 */
28 HISTORY_MANAGER_IMPEXP BOOL historyIsEnabled(void);
29
30 /**
31 * append lines to History manager
32 * @param array of string
33 * @param size of the array of string
34 * @return TRUE or FALSE
35 */
36 HISTORY_MANAGER_IMPEXP BOOL appendLinesToScilabHistory(char** _pstLines, int _iLines);
37 // Note it is lines_ because line is a keyword for term stuff
38
39 /**
40 * add a line to History manager
41 * @param a line to add
42 * line isn't added if it is the same as previous (FALSE)
43 * @return TRUE or FALSE
44 */
45 HISTORY_MANAGER_IMPEXP BOOL appendLineToScilabHistory(char* _pstLine);
46
47 /**
48 * Display history
49 */
50 HISTORY_MANAGER_IMPEXP void displayScilabHistory(void);
51
52 /**
53 * save history in a file
54 * @param a filename if NULL saves in default filename
55 * default filename --> SCIHOME/history.scilab
56 * @return TRUE or FALSE
57 */
58 HISTORY_MANAGER_IMPEXP BOOL writeScilabHistoryToFile(char* _pstFilename);
59
60 /**
61 * load history from a file
62 * @param a filename if NULL load from default filename
63 * default filename --> SCIHOME/history.scilab
64 * @return TRUE or FALSE
65 */
66 HISTORY_MANAGER_IMPEXP BOOL loadScilabHistoryFromFile(char* _pstFilename);
67
68 /**
69 * set filename of history
70 * @param filename of history
71 * @return TRUE or FALSE
72 */
73 HISTORY_MANAGER_IMPEXP BOOL setFilenameScilabHistory(char* _pstFilename);
74
75 /**
76 * get filename of history
77 * @return a filename
78 */
79 HISTORY_MANAGER_IMPEXP char* getFilenameScilabHistory(void);
80
81 /**
82 * set default filename of history
83 * @return TRUE or FALSE
84 */
85 HISTORY_MANAGER_IMPEXP BOOL setDefaultFilenameScilabHistory(void);
86
87 /**
88 * get info about history file was or not truncated (too big)
89 * @return TRUE (truncated) or FALSE
90 */
91 HISTORY_MANAGER_IMPEXP BOOL isScilabHistoryTruncated(void);
92
93 /**
94 * reset history manager
95 */
96 HISTORY_MANAGER_IMPEXP BOOL resetScilabHistory(void);
97
98 /**
99 * Get all lines in history
100 * @return a array of string
101 */
102 HISTORY_MANAGER_IMPEXP char** getAllLinesOfScilabHistory(void);
103
104 /**
105 * Get numbers of lines in history
106 * size of array returned by getAllLinesOfScilabHistory
107 * @return int
108 */
109 HISTORY_MANAGER_IMPEXP int getSizeAllLinesOfScilabHistory(void);
110
111 /**
112 * set new token to search in history
113 * @param token (a string)
114 * @return TRUE or FALSE
115 */
116 HISTORY_MANAGER_IMPEXP BOOL setSearchedTokenInScilabHistory(char* _pstToken);
117
118 /**
119 * reset search in history
120 * @return TRUE or FALSE
121 */
122 HISTORY_MANAGER_IMPEXP BOOL resetSearchedTokenInScilabHistory(void);
123
124 /**
125 * get token searched in history
126 * @return token (a string)
127 */
128 HISTORY_MANAGER_IMPEXP char* getSearchedTokenInScilabHistory(void);
129
130 /**
131 * Get the previous line in Scilab history
132 * @return a line or NULL
133 * after a appendLine iterator go to end
134 */
135 HISTORY_MANAGER_IMPEXP char* getPreviousLineInScilabHistory(void);
136
137 /**
138 * Get the next line in Scilab history
139 * @return a line or NULL
140 * after a appendLine iterator go to end
141 */
142 HISTORY_MANAGER_IMPEXP char* getNextLineInScilabHistory(void);
143
144 /**
145 * Get numbers of lines in history
146 * @return number of lines
147 */
148 HISTORY_MANAGER_IMPEXP int getNumberOfLinesInScilabHistory(void);
149
150 /**
151 * set consecutive duplicate lines are added
152 * @param doit (TRUE or FALSE)
153 */
154 HISTORY_MANAGER_IMPEXP void setSaveConsecutiveDuplicateLinesInScilabHistory(BOOL _bAllow);
155
156 /**
157 * indicate if consecutive duplicate lines are added
158 * @return TRUE or FALSE
159 */
160 HISTORY_MANAGER_IMPEXP BOOL getSaveConsecutiveDuplicateLinesInScilabHistory(void);
161
162 /**
163 * Set after how many lines history is saved
164 * @param number between 0 and Max
165 * default value is 0 (disabled)
166 */
167 HISTORY_MANAGER_IMPEXP void setAfterHowManyLinesScilabHistoryIsSaved(int _iNum);
168
169 /**
170 * Get after how many lines history is saved
171 * @return number between 0 and Max
172 * default value is 0 (disabled)
173 */
174 HISTORY_MANAGER_IMPEXP int getAfterHowManyLinesScilabHistoryIsSaved(void);
175
176 /**
177 * Get the Nth Line in history
178 * @param N
179 * @return the Nth Line
180 */
181 HISTORY_MANAGER_IMPEXP char* getNthLineInScilabHistory(int _iLine);
182
183 /**
184 * delete the Nth Line in history
185 * @param N
186 * @return TRUE or FALSE
187 */
188 HISTORY_MANAGER_IMPEXP BOOL deleteNthLineScilabHistory(int _iLine);
189
190 /**
191 * get number of lines of history
192 * @return a number >= 0
193 */
194 HISTORY_MANAGER_IMPEXP int getSizeScilabHistory(void);
195
196 /**
197 */
198 BOOL setSizeMaxScilabHistory(int _iMaxLines);
199
200 /**
201 */
202 int getSizeMaxScilabHistory(void);
203
204 /*------------------------------------------------------------------------*/
205 #ifdef __cplusplus
206 }
207 #endif
208 /*------------------------------------------------------------------------*/
209 #endif /* __HISTORYMANAGER_C_H__ */
210 /*------------------------------------------------------------------------*/