ffe703c9b9841b6d83d9e98f3e827a70428795d8
[scilab.git] / scilab / modules / output_stream / src / cpp / Diary.hxx
1 /*--------------------------------------------------------------------------*/ 
2 /*
3 * ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) DIGITEO - 2009 - 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 #ifndef __DIARY_HXX__
15 #define __DIARY_HXX__
16 /*--------------------------------------------------------------------------*/ 
17 #include <string>
18 /*--------------------------------------------------------------------------*/ 
19 class Diary
20 {
21 private:
22         std::wstring wfilename;
23         int ID_foutstream;
24
25         int fileAttribMode;
26
27         void setID(int _ID);
28
29         /* resume mode */
30         bool suspendwrite;
31
32         // 0 UNIX epoch
33         // 1 ISO_8601
34         int Prefixmode;
35
36         // 0 prefix @ beginning of Input and Output
37         // 1 prefix only @ beginning of Input
38         // 2 prefix only @ beginning of Output
39         // 3 no prefix
40         int PrefixIoModeFilter;
41
42         // 0 all (output and input)
43         // 1 input
44         // 2 output
45         int IoModeFilter;
46
47         /*
48         * used on Windows to replace carriage return
49         */
50         std::wstring replace(std::wstring text, std::wstring s, std::wstring replacement);
51
52 public:
53         /*
54         * constructor
55         */
56         Diary(std::wstring _wfilename,int _mode,int ID);
57
58         /*
59         * destructor
60         */
61         ~Diary();
62
63         /*
64         * get filename of this diray
65         */
66         std::wstring getFilename(void);
67
68         /*
69         * get & set IO mode
70         */
71         void setIOMode(int _mode);
72         int getIOMode(void);
73
74         /*
75         * get ID of this diary
76         */
77         int getID(void);
78
79         /*
80         * write a string in this diary
81         */
82         void write(std::wstring _wstr, bool bInput);
83
84         /*
85         * write a line in this diary
86         */
87         void writeln(std::wstring _wstr, bool bInput);
88
89         /*
90         * get & set Resume mode 
91         */
92         bool setSuspendWrite(bool bWith);
93         bool getSuspendWrite(void);
94
95         /*
96         * get & set Prefix mode
97         */
98         void setPrefixMode(int iPrefixMode);
99         int getPrefixMode(void);
100
101         /*
102         * get & set IO mode filter
103         */
104         void setPrefixIoModeFilter(int mode);
105         int getPrefixIoModeFilter(void);
106 };
107
108 #endif /* __DIARY_HXX__ */
109 /*--------------------------------------------------------------------------*/ 
110 bool compareDiary(Diary first,Diary second);
111 /*--------------------------------------------------------------------------*/