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"
17 /*--------------------------------------------------------------------------*/
18 static DiaryList *SCIDIARY = NULL;
19 /*--------------------------------------------------------------------------*/
20 static int createDiaryManager(void)
24 SCIDIARY = new DiaryList();
29 /*--------------------------------------------------------------------------*/
30 static int destroyDiaryManager(void)
40 /*--------------------------------------------------------------------------*/
41 wchar_t *getDiaryFilename(int _Id)
43 wchar_t *wcFilename = NULL;
46 if (SCIDIARY->getFilename(_Id).compare(L""))
48 wcFilename = (wchar_t*) MALLOC(sizeof(wchar_t) * (SCIDIARY->getFilename(_Id).length() + 1));
51 wcscpy(wcFilename, SCIDIARY->getFilename(_Id).c_str());
57 /*--------------------------------------------------------------------------*/
58 wchar_t **getDiaryFilenames(int *array_size)
63 std::wstring * wstringFilenames = SCIDIARY->getFilenames(array_size);
66 wchar_t **wcFilenames = (wchar_t **) MALLOC (sizeof(wchar_t*) * (*array_size));
67 for (int i = 0; i < *array_size; i++)
69 wcFilenames[i] = (wchar_t*) MALLOC(sizeof(wchar_t) * (wstringFilenames[i].length() + 1));
70 wcscpy(wcFilenames[i], wstringFilenames[i].c_str());
77 /*--------------------------------------------------------------------------*/
78 int *getDiaryIDs(int *array_size)
83 int *iIDs = SCIDIARY->getIDs(array_size);
88 /*--------------------------------------------------------------------------*/
89 double *getDiaryIDsAsDouble(int *array_size)
91 int *iIDs = getDiaryIDs(array_size);
96 double *dIDs = new double[*array_size];
97 for (int i = 0; i < *array_size; i++)
99 dIDs[i] = (double)iIDs[i];
111 /*--------------------------------------------------------------------------*/
112 int diaryCloseAll(void)
114 destroyDiaryManager();
117 /*--------------------------------------------------------------------------*/
118 int diaryClose(int _iId)
124 if (SCIDIARY->closeDiary(_iId))
132 /*--------------------------------------------------------------------------*/
133 int diaryClose(wchar_t *filename)
137 int iID = SCIDIARY->getID(filename);
140 if (SCIDIARY->closeDiary(iID))
148 /*--------------------------------------------------------------------------*/
149 int diaryPauseAll(void)
153 SCIDIARY->setSuspendWrite(true);
158 /*--------------------------------------------------------------------------*/
159 int diaryPause(int _iId)
163 SCIDIARY->setSuspendWrite(_iId, true);
168 /*--------------------------------------------------------------------------*/
169 int diaryPause(wchar_t *filename)
173 int iID = SCIDIARY->getID(std::wstring(filename));
176 SCIDIARY->setSuspendWrite(iID, true);
182 /*--------------------------------------------------------------------------*/
183 int diaryResumeAll(void)
187 SCIDIARY->setSuspendWrite(false);
192 /*--------------------------------------------------------------------------*/
193 int diaryResume(int _iId)
197 SCIDIARY->setSuspendWrite(_iId, false);
202 /*--------------------------------------------------------------------------*/
203 int diaryResume(wchar_t *filename)
207 int iID = SCIDIARY->getID(std::wstring(filename));
210 SCIDIARY->setSuspendWrite(iID, false);
216 /*--------------------------------------------------------------------------*/
217 int diaryExists(int _iId)
221 if (SCIDIARY->exists(_iId))
228 /*--------------------------------------------------------------------------*/
229 int diaryExists(wchar_t *filename)
233 if (SCIDIARY->exists(std::wstring(filename)))
240 /*--------------------------------------------------------------------------*/
241 int diaryNew(wchar_t *filename, bool autorename)
243 createDiaryManager();
247 return SCIDIARY->openDiary(std::wstring(filename), autorename);
252 /*--------------------------------------------------------------------------*/
253 int diaryAppend(wchar_t *filename)
255 createDiaryManager();
258 return SCIDIARY->openDiary(std::wstring(filename), 1, false);
262 /*--------------------------------------------------------------------------*/
263 int diaryWrite(wchar_t *wstr, BOOL bInput)
269 SCIDIARY->write(std::wstring(wstr), true);
273 SCIDIARY->write(std::wstring(wstr), false);
279 /*--------------------------------------------------------------------------*/
280 int diaryWriteln(wchar_t *wstr, BOOL bInput)
286 SCIDIARY->writeln(std::wstring(wstr), true);
290 SCIDIARY->writeln(std::wstring(wstr), false);
296 /*--------------------------------------------------------------------------*/
297 int diarySetFilterMode(int _iId, diary_filter mode)
301 SCIDIARY->setFilterMode(_iId, mode);
306 /*--------------------------------------------------------------------------*/
307 int diarySetPrefixMode(int ID_diary, diary_prefix_time_format iPrefixMode)
311 SCIDIARY->setPrefixMode(ID_diary, iPrefixMode);
316 /*--------------------------------------------------------------------------*/
317 int diaryGetPrefixMode(int ID_diary)
321 return SCIDIARY->getPrefixMode(ID_diary);
325 /*--------------------------------------------------------------------------*/
326 int diarySetPrefixIoModeFilter(int ID_diary, diary_prefix_time_filter mode)
330 SCIDIARY->setPrefixIoModeFilter(ID_diary, mode);
335 /*--------------------------------------------------------------------------*/
336 diary_prefix_time_filter diaryGetPrefixIoModeFilter(int ID_diary)
340 return SCIDIARY->getPrefixIoModeFilter(ID_diary);
342 return PREFIX_FILTER_ERROR;
344 /*--------------------------------------------------------------------------*/