License Header change: Removed the LICENSE_END before beta
[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 /*------------------------------------------------------------------------*/