862d5b0f814cdc1f0b8267cc886f6e09ed33a230
[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     * SCIHOME/history.scilab
55     * @return TRUE or FALSE
56     */
57     BOOL setDefaultFilename(void);
58
59     /**
60     * write history to a file
61     * @param a string the filename
62     * @return TRUE or FALSE
63     */
64     BOOL writeToFile(std::string filename);
65
66     /**
67     * write history to a file
68     * use default filename
69     * @return TRUE or FALSE
70     */
71     BOOL writeToFile(void);
72
73     /**
74     * load history from a file
75     * @param a string the filename
76     * @return TRUE or FALSE
77     */
78     errorLoadHistoryCode loadFromFile(std::string filename);
79
80     /**
81     * load history from a file
82     * use default filename
83     * @return TRUE or FALSE
84     */
85     errorLoadHistoryCode loadFromFile(void);
86
87     /**
88     * get loaded history
89     * @return a list of CommandLine
90     */
91     list<CommandLine> getHistory(void);
92
93     /**
94     * set History to save
95     * @param a list of CommandLine
96     * @return TRUE or FALSE
97     */
98     BOOL setHistory(list<CommandLine> commands);
99
100     /**
101     * reset HistoryFile Object
102     * @return TRUE or FALSE
103     */
104     BOOL reset(void);
105
106     /**
107     *
108     */
109     int getDefaultMaxNbLines(void);
110
111     /**
112     *
113     */
114     BOOL setDefaultMaxNbLines(int nbLinesMax);
115
116 protected:
117 private:
118     std::string my_history_filename;
119     list<CommandLine> Commands;
120     int MaxLinesToRead;
121 };
122 /*------------------------------------------------------------------------*/