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