2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2009 - DIGITEO - Allan CORNET
5 * This file must be used under the terms of the CeCILL.
6 * This source file is licensed as described in the file COPYING, which
7 * you should have received as part of this distribution. The terms
8 * are also available at
9 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12 /*--------------------------------------------------------------------------*/
13 #include "diary_manager.hxx"
14 #include "DiaryList.hxx"
16 /*--------------------------------------------------------------------------*/
17 static DiaryList *SCIDIARY = NULL;
18 /*--------------------------------------------------------------------------*/
19 static int createDiaryManager(void)
23 SCIDIARY = new DiaryList();
28 /*--------------------------------------------------------------------------*/
29 static int destroyDiaryManager(void)
39 /*--------------------------------------------------------------------------*/
40 wchar_t *getDiaryFilename(int _Id)
42 wchar_t *wcFilename = NULL;
45 if (SCIDIARY->getFilename(_Id).compare(L""))
47 wcFilename = new wchar_t[SCIDIARY->getFilename(_Id).length()];
48 wcscpy(wcFilename, SCIDIARY->getFilename(_Id).c_str());
53 /*--------------------------------------------------------------------------*/
54 wchar_t **getDiaryFilenames(int *array_size)
59 std::wstring * wstringFilenames = SCIDIARY->getFilenames(array_size);
62 wchar_t **wcFilenames = new wchar_t*[*array_size];
63 for(int i = 0; i < *array_size; i++)
65 wcFilenames[i] = new wchar_t[wstringFilenames[i].length()];
66 wcscpy(wcFilenames[i], wstringFilenames[i].c_str());
73 /*--------------------------------------------------------------------------*/
74 int *getDiaryIDs(int *array_size)
79 int *iIDs = SCIDIARY->getIDs(array_size);
84 /*--------------------------------------------------------------------------*/
85 double *getDiaryIDsAsDouble(int *array_size)
87 int *iIDs = getDiaryIDs(array_size);
92 double *dIDs = new double[*array_size];
93 for(int i = 0;i < *array_size; i++)
95 dIDs[i] = (double)iIDs[i];
107 /*--------------------------------------------------------------------------*/
108 int diaryCloseAll(void)
110 destroyDiaryManager();
113 /*--------------------------------------------------------------------------*/
114 int diaryClose(int _iId)
120 if (SCIDIARY->closeDiary(_iId)) return 0;
125 /*--------------------------------------------------------------------------*/
126 int diaryClose(wchar_t *filename)
130 int iID = SCIDIARY->getID(filename);
133 if (SCIDIARY->closeDiary(iID)) return 0;
138 /*--------------------------------------------------------------------------*/
139 int diaryPauseAll(void)
143 SCIDIARY->setSuspendWrite(true);
148 /*--------------------------------------------------------------------------*/
149 int diaryPause(int _iId)
153 SCIDIARY->setSuspendWrite(_iId, true);
158 /*--------------------------------------------------------------------------*/
159 int diaryPause(wchar_t *filename)
163 int iID = SCIDIARY->getID(std::wstring(filename));
166 SCIDIARY->setSuspendWrite(iID, true);
172 /*--------------------------------------------------------------------------*/
173 int diaryResumeAll(void)
177 SCIDIARY->setSuspendWrite(false);
182 /*--------------------------------------------------------------------------*/
183 int diaryResume(int _iId)
187 SCIDIARY->setSuspendWrite(_iId, false);
192 /*--------------------------------------------------------------------------*/
193 int diaryResume(wchar_t *filename)
197 int iID = SCIDIARY->getID(std::wstring(filename));
200 SCIDIARY->setSuspendWrite(iID, false);
206 /*--------------------------------------------------------------------------*/
207 int diaryExists(int _iId)
211 if (SCIDIARY->exists(_iId)) return 0;
215 /*--------------------------------------------------------------------------*/
216 int diaryExists(wchar_t *filename)
220 if (SCIDIARY->exists(std::wstring(filename))) return 0;
224 /*--------------------------------------------------------------------------*/
225 int diaryNew(wchar_t *filename, bool autorename)
227 createDiaryManager();
231 return SCIDIARY->openDiary(std::wstring(filename),autorename);
236 /*--------------------------------------------------------------------------*/
237 int diaryAppend(wchar_t *filename)
239 createDiaryManager();
242 return SCIDIARY->openDiary(std::wstring(filename),1,false);
246 /*--------------------------------------------------------------------------*/
247 int diaryWrite(wchar_t *wstr, BOOL bInput)
251 if (bInput) SCIDIARY->write(std::wstring(wstr), true);
252 else SCIDIARY->write(std::wstring(wstr), false);
257 /*--------------------------------------------------------------------------*/
258 int diaryWriteln(wchar_t *wstr, BOOL bInput)
262 if (bInput) SCIDIARY->writeln(std::wstring(wstr), true);
263 else SCIDIARY->writeln(std::wstring(wstr), false);
268 /*--------------------------------------------------------------------------*/
269 int diarySetFilterMode(int _iId, diary_filter mode)
273 SCIDIARY->setFilterMode(_iId, mode);
278 /*--------------------------------------------------------------------------*/
279 int diarySetPrefixMode(int ID_diary,diary_prefix_time_format iPrefixMode)
283 SCIDIARY->setPrefixMode(ID_diary, iPrefixMode);
288 /*--------------------------------------------------------------------------*/
289 int diaryGetPrefixMode(int ID_diary)
293 return SCIDIARY->getPrefixMode(ID_diary);
297 /*--------------------------------------------------------------------------*/
298 int diarySetPrefixIoModeFilter(int ID_diary,diary_prefix_time_filter mode)
302 SCIDIARY->setPrefixIoModeFilter(ID_diary, mode);
307 /*--------------------------------------------------------------------------*/
308 diary_prefix_time_filter diaryGetPrefixIoModeFilter(int ID_diary)
312 return SCIDIARY->getPrefixIoModeFilter(ID_diary);
314 return PREFIX_FILTER_ERROR;
316 /*--------------------------------------------------------------------------*/