1st attempt at an initial import.
[qwerkisync] / EventParsers / VMGEntities / VBody.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 EVENTPARSERS_VMGEntities_VBODYWRITER_H
20 #define EVENTPARSERS_VMGEntities_VBODYWRITER_H
21
22 #include <QMap>
23
24 #include "SMSEntity.h"
25 #include "iReader.h"
26 #include "iWriter.h"
27
28 class QString;
29
30 namespace EventTypes { class SMS; }
31
32 namespace EventParsers
33 {
34         namespace VMGEntities
35         {
36                 class VBody : public SMSEntity, public iWriter, public iReader
37                 {
38                 public:
39                         VBody(const SMSEntity *parent);
40                         //VBody(QTextStream& stream);
41                         ~VBody();
42
43                         virtual bool Read(const QString &initialLine, QTextStream &stream, EventTypes::SMS &event);
44                         virtual void Write(QTextStream &stream, const EventTypes::SMS &event);
45
46                 protected:
47                         virtual const char *getTagName() const { return "VBODY"; }
48
49                 private:
50                         static const QMap<int, const char *> & BinaryMIMETypes()
51                         {
52                                 static QMap<int, const char *> s_BinaryMIMETypes;
53                                 if(s_BinaryMIMETypes.count() == 0)
54                                 {
55                                         s_BinaryMIMETypes.insert(0x00, "*/*");
56                                         s_BinaryMIMETypes.insert(0x01, "text/*");
57                                         s_BinaryMIMETypes.insert(0x02, "text/html");
58                                         s_BinaryMIMETypes.insert(0x03, "text/plain");
59                                         s_BinaryMIMETypes.insert(0x04, "text/x-hdml");
60                                         s_BinaryMIMETypes.insert(0x05, "text/x-ttml");
61                                         s_BinaryMIMETypes.insert(0x06, "text/x-vCalendar");
62                                         s_BinaryMIMETypes.insert(0x07, "text/x-vCard");
63                                         s_BinaryMIMETypes.insert(0x08, "text/vnd.wap.wml");
64                                         s_BinaryMIMETypes.insert(0x09, "text/vnd.wap.wmlscript");
65                                         s_BinaryMIMETypes.insert(0x0A, "text/vnd.wap.wta-event");
66                                         s_BinaryMIMETypes.insert(0x0B, "multipart/*");
67                                         s_BinaryMIMETypes.insert(0x0C, "multipart/mixed");
68                                         s_BinaryMIMETypes.insert(0x0D, "multipart/form-data");
69                                         s_BinaryMIMETypes.insert(0x0E, "multipart/byterantes");
70                                         s_BinaryMIMETypes.insert(0x0F, "multipart/alternative");
71                                         s_BinaryMIMETypes.insert(0x10, "application/*");
72                                         s_BinaryMIMETypes.insert(0x11, "application/java-vm");
73                                         s_BinaryMIMETypes.insert(0x12, "application/x-www-form-urlencoded");
74                                         s_BinaryMIMETypes.insert(0x13, "application/x-hdmlc");
75                                         s_BinaryMIMETypes.insert(0x14, "application/vnd.wap.wmlc");
76                                         s_BinaryMIMETypes.insert(0x15, "application/vnd.wap.wmlscriptc");
77                                         s_BinaryMIMETypes.insert(0x16, "application/vnd.wap.wta-eventc");
78                                         s_BinaryMIMETypes.insert(0x17, "application/vnd.wap.uaprof");
79                                         s_BinaryMIMETypes.insert(0x18, "application/vnd.wap.wtls-ca-certificate");
80                                         s_BinaryMIMETypes.insert(0x19, "application/vnd.wap.wtls-user-certificate");
81                                         s_BinaryMIMETypes.insert(0x1A, "application/x-x509-ca-cert");
82                                         s_BinaryMIMETypes.insert(0x1B, "application/x-x509-user-cert");
83                                         s_BinaryMIMETypes.insert(0x1C, "image/*");
84                                         s_BinaryMIMETypes.insert(0x1D, "image/gif");
85                                         s_BinaryMIMETypes.insert(0x1E, "image/jpeg");
86                                         s_BinaryMIMETypes.insert(0x1F, "image/tiff");
87                                         s_BinaryMIMETypes.insert(0x20, "image/png");
88                                         s_BinaryMIMETypes.insert(0x21, "image/vnd.wap.wbmp");
89                                         s_BinaryMIMETypes.insert(0x22, "application/vnd.wap.multipart.*");
90                                         s_BinaryMIMETypes.insert(0x23, "application/vnd.wap.multipart.mixed");
91                                         s_BinaryMIMETypes.insert(0x24, "application/vnd.wap.multipart.form-data");
92                                         s_BinaryMIMETypes.insert(0x25, "application/vnd.wap.multipart.byteranges");
93                                         s_BinaryMIMETypes.insert(0x26, "application/vnd.wap.multipart.alternative");
94                                         s_BinaryMIMETypes.insert(0x27, "application/xml");
95                                         s_BinaryMIMETypes.insert(0x28, "text/xml");
96                                         s_BinaryMIMETypes.insert(0x29, "application/vnd.wap.wbxml");
97                                         s_BinaryMIMETypes.insert(0x2A, "application/x-x968-cross-cert");
98                                         s_BinaryMIMETypes.insert(0x2B, "application/x-x968-ca-cert");
99                                         s_BinaryMIMETypes.insert(0x2C, "application/x-x968-user-cert");
100                                         s_BinaryMIMETypes.insert(0x2D, "text/vnd.wap.si");
101                                         s_BinaryMIMETypes.insert(0x2E, "application/vnd.wap.sic");
102                                         s_BinaryMIMETypes.insert(0x2F, "text/vnd.wap.sl");
103                                         s_BinaryMIMETypes.insert(0x30, "application/vnd.wap.slc");
104                                         s_BinaryMIMETypes.insert(0x31, "text/vnd.wap.co");
105                                         s_BinaryMIMETypes.insert(0x32, "application/vnd.wap.coc");
106                                         s_BinaryMIMETypes.insert(0x33, "application/vnd.wap.multipart.related");
107                                         s_BinaryMIMETypes.insert(0x34, "application/vnd.wap.sia");
108                                         s_BinaryMIMETypes.insert(0x35, "text/vnd.wap.connectivity-xml");
109                                         s_BinaryMIMETypes.insert(0x36, "application/vnd.wap.connectivity-wbxml");
110                                         s_BinaryMIMETypes.insert(0x37, "application/pkcs7-mime");
111                                         s_BinaryMIMETypes.insert(0x38, "application/vnd.wap.hashed-certificate");
112                                         s_BinaryMIMETypes.insert(0x39, "application/vnd.wap.signed-certificate");
113                                         s_BinaryMIMETypes.insert(0x3A, "application/vnd.wap.cert-response");
114                                         s_BinaryMIMETypes.insert(0x3B, "application/xhtml+xml");
115                                         s_BinaryMIMETypes.insert(0x3C, "application/wml+xml");
116                                         s_BinaryMIMETypes.insert(0x3D, "text/css");
117                                         s_BinaryMIMETypes.insert(0x3E, "application/vnd.wap.mms-message");
118                                         s_BinaryMIMETypes.insert(0x3F, "application/vnd.wap.rollover-certificate");
119                                         s_BinaryMIMETypes.insert(0x40, "application/vnd.wap.locc+wbxml");
120                                         s_BinaryMIMETypes.insert(0x41, "application/vnd.wap.loc+xml");
121                                         s_BinaryMIMETypes.insert(0x42, "application/vnd.syncml.dm+wbxml");
122                                         s_BinaryMIMETypes.insert(0x43, "application/vnd.syncml.dm+xml");
123                                         s_BinaryMIMETypes.insert(0x44, "application/vnd.syncml.notification");
124                                         s_BinaryMIMETypes.insert(0x45, "application/vnd.wap.xhtml+xml");
125                                         s_BinaryMIMETypes.insert(0x46, "application/vnd.wv.csp.cir");
126                                         s_BinaryMIMETypes.insert(0x47, "application/vnd.oma.dd+xml");
127                                         s_BinaryMIMETypes.insert(0x48, "application/vnd.oma.drm.message");
128                                         s_BinaryMIMETypes.insert(0x49, "application/vnd.oma.drm.content");
129                                         s_BinaryMIMETypes.insert(0x4A, "application/vnd.oma.drm.rights+xml");
130                                         s_BinaryMIMETypes.insert(0x4B, "application/vnd.oma.drm.rights+wbxml");
131                                 }
132
133                                 return s_BinaryMIMETypes;
134                         }
135                 };
136         }
137 }
138
139 #endif // EVENTPARSERS_VMGEntities_VBODYWRITER_H