* Bug #12333 fixed - Cleaned command history is restored after reopening Scilab.
[scilab.git] / scilab / modules / history_manager / src / cpp / HistoryFile.hxx
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2007-2008 - INRIA - Allan CORNET
4 * Copyright (C) 2011 - 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 #include <list>
16 #include "CommandLine.hxx"
17 /*------------------------------------------------------------------------*/
18 typedef enum
19 {
20     NO_ERROR_HISTORY_LOADED,
21     ERROR_HISTORY_NOT_LOADED,
22     HISTORY_TRUNCATED
23 } errorLoadHistoryCode;
24 /*------------------------------------------------------------------------*/
25 using namespace std;
26 /*------------------------------------------------------------------------*/
27 class HistoryFile
28 {
29 public:
30     /**
31     * Constructor
32     */
33     HistoryFile();
34
35     /**
36     * Destructor
37     */
38     ~HistoryFile();
39
40     /**
41     * get filename used by history
42     * @return a string (filenam)
43     */
44     std::string getFilename(void);
45
46     /**
47     * set filename used by history
48     * @param a string (filename)
49     */
50     void setFilename(std::string filename);
51
52     /**
53     * set default filename used by history
54     * @return TRUE or FALSE
55     */
56     BOOL setDefaultFilename(void);
57
58     /**
59     * write history to a file
60     * @param a string the filename
61     * @return TRUE or FALSE
62     */
63     BOOL writeToFile(std::string filename);
64
65     /**
66     * write history to a file
67     * use default filename
68     * @return TRUE or FALSE
69     */
70     BOOL writeToFile(void);
71
72     /**
73     * load history from a file
74     * @param a string the filename
75     * @return TRUE or FALSE
76     */
77     errorLoadHistoryCode loadFromFile(std::string filename);
78
79     /**
80     * load history from a file
81     * use default filename
82     * @return TRUE or FALSE
83     */
84     errorLoadHistoryCode loadFromFile(void);
85
86     /**
87     * get loaded history
88     * @return a list of CommandLine
89     */
90     list<CommandLine> getHistory(void);
91
92     /**
93     * set History to save
94     * @param a list of CommandLine
95     * @return TRUE or FALSE
96     */
97     BOOL setHistory(list<CommandLine> commands);
98
99     /**
100     * reset HistoryFile Object
101     * @return TRUE or FALSE
102     */
103     BOOL reset(void);
104
105     /**
106     *
107     */
108     int getDefaultMaxNbLines(void);
109
110     /**
111     *
112     */
113     BOOL setDefaultMaxNbLines(int nbLinesMax);
114
115 protected:
116 private:
117     std::string my_history_filename;
118     list<CommandLine> Commands;
119     int MaxLinesToRead;
120 };
121 /*------------------------------------------------------------------------*/