Addressing some compilation warnings:
[qwerkisync] / Attachment.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 ATTACHMENT_H
20 #define ATTACHMENT_H
21
22 #include <QDebug>
23 #include <QFile>
24 #include <QString>
25
26 class _RTComElAttachment;
27 typedef _RTComElAttachment RTComElAttachment;
28
29 class QTextStream;
30
31 #include "iHashable.h"
32
33 class Attachment : public iHashable
34 {
35 public:
36         Attachment(const QString filename, const QString description);
37         ~Attachment();
38
39         Attachment(const RTComElAttachment &attachment);
40
41         const QString &Path() const { return m_Path; }
42         const QString &Description() const { return m_Description; }
43         QTextStream &Stream() const { return *m_Stream; }
44
45         RTComElAttachment * toRTComAttachment() const;
46         static void freeRTComContents(RTComElAttachment &attachment);
47
48         virtual const uint HashCode() const;
49 void killStream()
50 {
51         delete m_Stream;
52         m_Stream = NULL;
53 }
54
55 private:
56         void setPath(QString &path) { m_Path = path; }
57         void setDescription(QString &description) { m_Description = description; }
58         //void setStream(QTextStream &stream) { m_Stream = stream; }
59
60 private:
61         QString m_Path;
62         QString m_Description;
63
64         QFile m_FileHandle;
65         QTextStream *m_Stream;
66
67         bool m_DeleteFileOnDestruction;
68 };
69
70 QDebug operator<<(QDebug dbg, Attachment& attachment);
71
72 #endif // ATTACHMENT_H