Addressing some compilation warnings:
[qwerkisync] / EventWriters / CSVSymbianEventLogWriter.h
1 /*
2  * Copyright (C) 2011, Jamie Thompson
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public
6  * License as published by the Free Software Foundation; either
7  * version 3 of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public
15  * License along with this program; If not, see
16  * <http://www.gnu.org/licenses/>.
17  */
18
19 #ifndef EVENTWRITERS_CSVSYMBIANEVENTLOGWRITER_H
20 #define EVENTWRITERS_CSVSYMBIANEVENTLOGWRITER_H
21
22 #include "EventFormats/SymbianEventLog.h"
23 #include "iEventWriter.h"
24
25 class NumberToNameLookup;
26 class Settings;
27
28 #include <QChar>
29 class QFile;
30 #include <QHash>
31 class QString;
32 class QTextStream;
33 #include <QVector>
34
35 namespace EventWriters
36 {
37         class CSVSymbianEventLogWriter : public iEventWriter, public SymbianEventLog
38         {
39         public:
40                 typedef QVector<QString> ColumnIndicesByIndexHash;
41
42                 CSVSymbianEventLogWriter(const Settings &settings, const NumberToNameLookup &numberToNameLookup);
43                 ~CSVSymbianEventLogWriter();
44
45                 virtual void Write(EventTypes::iEvent &event);
46
47         protected:
48                 void OpenStream();
49
50         private:
51                 void WriteHeaders();
52                 void WriteStrings(QTextStream &stringsStream);
53
54         // Properties
55         protected:
56                 const Settings &CurrentSettings() const { return m_Settings; }
57                 const NumberToNameLookup &NameLookup() const { return m_NumberToNameLookup; }
58                 QTextStream *const Stream() const { return m_Stream; }
59                 const ColumnIndicesByIndexHash Headers() const { return m_Headers; }
60                 const QChar Delimiter() const { return m_Delimiter; }
61                 StringsLookup &Strings() { return m_Strings; }
62
63         private:
64                 const Settings &m_Settings;
65                 const NumberToNameLookup &m_NumberToNameLookup;
66
67                 void Stream(QTextStream *const stream) { m_Stream = stream; }
68                 QTextStream *m_Stream;
69                 void Headers(ColumnIndicesByIndexHash &headers) { m_Headers = headers; }
70                 ColumnIndicesByIndexHash m_Headers;
71                 void Delimiter(QChar delimiter) { m_Delimiter = delimiter; }
72                 QChar m_Delimiter;
73                 void Strings(StringsLookup &strings) { m_Strings = strings; }
74                 StringsLookup m_Strings;
75
76                 QFile *const File() const { return m_File; }
77                 void File(QFile *const file) { m_File = file; }
78                 QFile *m_File;
79         };
80 }
81
82 #endif // EVENTWRITERS_CSVSYMBIANEVENTLOGWRITER_H