LibreOffice Module svl (master) 1
inettype.cxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#include <sal/config.h>
21
22#include <array>
23
24#include <tools/wldcrd.hxx>
25#include <tools/inetmime.hxx>
26#include <o3tl/string_view.hxx>
27#include <osl/diagnose.h>
28#include <svl/inettype.hxx>
29
30namespace
31{
32
33struct MediaTypeEntry
34{
35 OUString m_pTypeName;
36 INetContentType m_eTypeID;
37};
38
39
40MediaTypeEntry const * seekEntry(OUString const & rTypeName,
41 MediaTypeEntry const * pMap, std::size_t nSize);
42
46MediaTypeEntry const aStaticTypeNameMap[CONTENT_TYPE_LAST + 1]
47 = { { " ", CONTENT_TYPE_UNKNOWN },
132};
133
134
137MediaTypeEntry const aStaticExtensionMap[]
138 = { { "aif", CONTENT_TYPE_AUDIO_AIFF },
139 { "aiff", CONTENT_TYPE_AUDIO_AIFF },
141 { "au", CONTENT_TYPE_AUDIO_BASIC },
143 { "bmp", CONTENT_TYPE_IMAGE_BMP },
145 { "doc", CONTENT_TYPE_APP_MSWORD },
149 { "gal", CONTENT_TYPE_APP_GALLERY },
150 { "gif", CONTENT_TYPE_IMAGE_GIF },
151 { "htm", CONTENT_TYPE_TEXT_HTML },
152 { "html", CONTENT_TYPE_TEXT_HTML },
154 { "jar", CONTENT_TYPE_APP_JAR },
155 { "jpeg", CONTENT_TYPE_IMAGE_JPEG },
156 { "jpg", CONTENT_TYPE_IMAGE_JPEG },
158 { "mid", CONTENT_TYPE_AUDIO_MIDI },
159 { "midi", CONTENT_TYPE_AUDIO_MIDI },
160 { "ogg", CONTENT_TYPE_AUDIO_VORBIS },
164 { "pcx", CONTENT_TYPE_IMAGE_PCX },
165 { "pdf", CONTENT_TYPE_APP_PDF },
167 { "png", CONTENT_TYPE_IMAGE_PNG },
170 { "ppt", CONTENT_TYPE_APP_MSPPOINT },
173 { "rtf", CONTENT_TYPE_APP_RTF },
174 { "sda", CONTENT_TYPE_APP_VND_DRAW },
175 { "sdc", CONTENT_TYPE_APP_VND_CALC },
177 { "sdm", CONTENT_TYPE_APP_VND_MAIL },
181 { "sd~", CONTENT_TYPE_X_STARMAIL },
182 { "sfs", CONTENT_TYPE_APP_FRAMESET },
185 { "smd", CONTENT_TYPE_APP_STARMAIL_SMD }, //CONTENT_TYPE_X_STARMAIL
186 { "smf", CONTENT_TYPE_APP_VND_MATH },
187 { "svh", CONTENT_TYPE_APP_STARHELP },
199 { "tif", CONTENT_TYPE_IMAGE_TIFF },
200 { "tiff", CONTENT_TYPE_IMAGE_TIFF },
201 { "txt", CONTENT_TYPE_TEXT_PLAIN },
202 { "url", CONTENT_TYPE_TEXT_URL },
203 { "vcf", CONTENT_TYPE_TEXT_VCARD },
205 { "vdo", CONTENT_TYPE_VIDEO_VDO },
207 { "wav", CONTENT_TYPE_AUDIO_WAV },
208 { "webm", CONTENT_TYPE_VIDEO_WEBM },
210 { "wrl", CONTENT_TYPE_X_VRML },
213 { "xls", CONTENT_TYPE_APP_MSEXCEL },
215 { "xlw", CONTENT_TYPE_APP_MSEXCEL },
217 { "zip", CONTENT_TYPE_APP_ZIP } };
218
219}
220
221
222// seekEntry
223
224
225namespace
226{
227
228MediaTypeEntry const * seekEntry(OUString const & rTypeName,
229 MediaTypeEntry const * pMap, std::size_t nSize)
230{
231#if defined DBG_UTIL
232 for (std::size_t i = 0; i < nSize - 1; ++i)
234 pMap[i].m_pTypeName < pMap[i + 1].m_pTypeName,
235 "seekEntry(): Bad map");
236#endif
237
238 std::size_t nLow = 0;
239 std::size_t nHigh = nSize;
240 while (nLow != nHigh)
241 {
242 std::size_t nMiddle = (nLow + nHigh) / 2;
243 MediaTypeEntry const * pEntry = pMap + nMiddle;
244 sal_Int32 nCmp = rTypeName.compareToIgnoreAsciiCase(pEntry->m_pTypeName);
245 if (nCmp < 0)
246 nHigh = nMiddle;
247 else if (nCmp == 0)
248 return pEntry;
249
250 else
251 nLow = nMiddle + 1;
252 }
253 return nullptr;
254}
255
256}
257
258// static
260{
261 OUString aType;
262 OUString aSubType;
263 if (parse(rTypeName, aType, aSubType))
264 {
265 aType += "/" + aSubType;
266 MediaTypeEntry const * pEntry = seekEntry(aType, aStaticTypeNameMap,
268 return pEntry ? pEntry->m_eTypeID : CONTENT_TYPE_UNKNOWN;
269 }
270 else
271 return rTypeName.equalsIgnoreAsciiCase(CONTENT_TYPE_STR_X_STARMAIL) ?
273 // the content type "x-starmail" has no sub type
274}
275
276//static
278{
279 static std::array<OUString, CONTENT_TYPE_LAST + 1> aMap = []()
280 {
281 std::array<OUString, CONTENT_TYPE_LAST + 1> tmp;
282 for (std::size_t i = 0; i <= CONTENT_TYPE_LAST; ++i)
283 tmp[aStaticTypeNameMap[i].m_eTypeID] = aStaticTypeNameMap[i].m_pTypeName;
286 "; charset=iso-8859-1";
287 return tmp;
288 }();
289
290 OUString aTypeName = eTypeID <= CONTENT_TYPE_LAST ? aMap[eTypeID]
291 : OUString();
292 if (aTypeName.isEmpty())
293 {
294 OSL_FAIL("INetContentTypes::GetContentType(): Bad ID");
296 }
297 return aTypeName;
298}
299
300//static
302{
303 MediaTypeEntry const * pEntry = seekEntry(rExtension, aStaticExtensionMap,
304 SAL_N_ELEMENTS(aStaticExtensionMap));
305 if (pEntry)
306 return pEntry->m_eTypeID;
308}
309
310//static
312{
314 std::size_t nIdx{ 0 };
315 OUString aToken( o3tl::getToken(rURL, u':', nIdx) );
316 if (!aToken.isEmpty())
317 {
318 if (aToken.equalsIgnoreAsciiCase(INETTYPE_URL_PROT_FILE))
319 if (rURL[ rURL.size() - 1 ] == '/') // folder
320 if (rURL.size() > RTL_CONSTASCII_LENGTH("file:///"))
321 if (WildCard(u"*/{*}/").Matches(rURL)) // special folder
323 else
324 // drive? -> "file:///?|/"
325 if (rURL.size() == 11
326 && rURL[ rURL.size() - 2 ] == '|')
327 {
328 // Drives need further processing, because of
329 // dynamic type according to underlying volume,
330 // which cannot be determined here.
331 }
332 else // normal folder
334 else // file system root
336 else // file
337 {
338 //@@@
339 }
340 else if (aToken.equalsIgnoreAsciiCase(INETTYPE_URL_PROT_HTTP)
341 || aToken.equalsIgnoreAsciiCase(INETTYPE_URL_PROT_HTTPS))
342 eTypeID = CONTENT_TYPE_TEXT_HTML;
343 else if (aToken.equalsIgnoreAsciiCase(INETTYPE_URL_PROT_PRIVATE))
344 {
345 aToken = o3tl::getToken(rURL, u'/', nIdx);
346 if (aToken == "factory")
347 {
348 aToken = o3tl::getToken(rURL, u'/', nIdx);
349 if (aToken == "swriter")
350 {
351 aToken = o3tl::getToken(rURL, u'/', nIdx);
352 eTypeID = aToken == "web" ?
354 aToken == "GlobalDocument" ?
357 }
358 else if (aToken == "scalc")
360 else if (aToken == "sdraw")
362 else if (aToken == "simpress")
364 else if (aToken == "schart")
366 else if (aToken == "simage")
368 else if (aToken == "smath")
370 else if (aToken == "frameset")
372 }
373 else if (aToken == "helpid")
375 }
376 else if (aToken.equalsIgnoreAsciiCase(INETTYPE_URL_PROT_MAILTO))
378 else if (aToken.equalsIgnoreAsciiCase(INETTYPE_URL_PROT_MACRO))
379 eTypeID = CONTENT_TYPE_APP_MACRO;
380 else if (aToken.equalsIgnoreAsciiCase(INETTYPE_URL_PROT_DATA))
381 {
382 aToken = o3tl::getToken(rURL, u',', nIdx);
383 eTypeID = GetContentType(aToken);
384 }
385 }
386 if (eTypeID == CONTENT_TYPE_UNKNOWN)
387 {
388 OUString aExtension;
389 if (GetExtensionFromURL(rURL, aExtension))
390 eTypeID = GetContentType4Extension(aExtension);
391 }
392 return eTypeID;
393}
394
395//static
396bool INetContentTypes::GetExtensionFromURL(std::u16string_view rURL,
397 OUString & rExtension)
398{
399 size_t nSlashPos = 0;
400 size_t i = 0;
401 while (i != std::u16string_view::npos)
402 {
403 nSlashPos = i;
404 i = rURL.find('/', i + 1);
405 }
406 if (nSlashPos != 0)
407 {
408 size_t nLastDotPos = i = rURL.find('.', nSlashPos);
409 while (i != std::u16string_view::npos)
410 {
411 nLastDotPos = i;
412 i = rURL.find('.', i + 1);
413 }
414 if (nLastDotPos >- 0)
415 rExtension = rURL.substr(nLastDotPos + 1);
416 return true;
417 }
418 return false;
419}
420
422 OUString const & rMediaType, OUString & rType, OUString & rSubType,
423 INetContentTypeParameterList * pParameters)
424{
425 sal_Unicode const * b = rMediaType.getStr();
426 sal_Unicode const * e = b + rMediaType.getLength();
427 OUString t;
428 OUString s;
430 if (INetMIME::scanContentType(rMediaType, &t, &s, pParameters == nullptr ? nullptr : &p) == e) {
431 rType = t;
432 rSubType = s;
433 if (pParameters != nullptr) {
434 *pParameters = p;
435 }
436 return true;
437 } else {
438 return false;
439 }
440}
441
442/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
XPropertyListType t
static bool parse(OUString const &rMediaType, OUString &rType, OUString &rSubType, INetContentTypeParameterList *pParameters=nullptr)
Definition: inettype.cxx:421
static INetContentType GetContentType4Extension(OUString const &rExtension)
Definition: inettype.cxx:301
static bool GetExtensionFromURL(std::u16string_view rURL, OUString &rExtension)
Definition: inettype.cxx:396
static INetContentType GetContentType(OUString const &rTypeName)
Definition: inettype.cxx:259
static INetContentType GetContentTypeFromURL(std::u16string_view aURL)
Definition: inettype.cxx:311
static sal_Unicode const * scanContentType(std::u16string_view rStr, OUString *pType=nullptr, OUString *pSubType=nullptr, INetContentTypeParameterList *pParameters=nullptr)
#define DBG_ASSERT(sCon, aError)
float u
std::unordered_map< OString, INetContentTypeParameter > INetContentTypeParameterList
constexpr OUStringLiteral CONTENT_TYPE_STR_VIDEO_WEBM
Definition: inettype.hxx:122
constexpr OUStringLiteral CONTENT_TYPE_STR_TEXT_PLAIN
Definition: inettype.hxx:114
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_IMPRESSPACKED
Definition: inettype.hxx:40
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_GALLERY
Definition: inettype.hxx:62
INetContentType
Definition: inettype.hxx:153
@ CONTENT_TYPE_APP_FRAMESET
Definition: inettype.hxx:209
@ CONTENT_TYPE_APP_VND_MATH
Definition: inettype.hxx:205
@ CONTENT_TYPE_AUDIO_BASIC
Definition: inettype.hxx:170
@ CONTENT_TYPE_AUDIO_WEBM
Definition: inettype.hxx:174
@ CONTENT_TYPE_APP_MSWORD_TEMPL
Definition: inettype.hxx:159
@ CONTENT_TYPE_VIDEO_THEORA
Definition: inettype.hxx:187
@ CONTENT_TYPE_APP_MSPPOINT
Definition: inettype.hxx:218
@ CONTENT_TYPE_TEXT_URL
Definition: inettype.hxx:184
@ CONTENT_TYPE_APP_MSPPOINT_TEMPL
Definition: inettype.hxx:219
@ CONTENT_TYPE_IMAGE_GENERIC
Definition: inettype.hxx:213
@ CONTENT_TYPE_VIDEO_MSVIDEO
Definition: inettype.hxx:186
@ CONTENT_TYPE_INET_MULTIPART_MIXED
Definition: inettype.hxx:229
@ CONTENT_TYPE_APP_GALLERY
Definition: inettype.hxx:194
@ CONTENT_TYPE_APP_CDE_CALENDAR_APP
Definition: inettype.hxx:223
@ CONTENT_TYPE_APP_STARIMPRESS
Definition: inettype.hxx:165
@ CONTENT_TYPE_APP_VND_NEWS
Definition: inettype.hxx:214
@ CONTENT_TYPE_APP_STARHELP
Definition: inettype.hxx:163
@ CONTENT_TYPE_APP_MACRO
Definition: inettype.hxx:210
@ CONTENT_TYPE_APP_VND_SUN_XML_IMPRESS
Definition: inettype.hxx:234
@ CONTENT_TYPE_APP_STARMAIL_SMD
Definition: inettype.hxx:198
@ CONTENT_TYPE_APP_VND_DRAW
Definition: inettype.hxx:201
@ CONTENT_TYPE_APP_VND_SUN_XML_WRITER_GLOBAL
Definition: inettype.hxx:238
@ CONTENT_TYPE_APP_RTF
Definition: inettype.hxx:157
@ CONTENT_TYPE_APP_VND_CHART
Definition: inettype.hxx:200
@ CONTENT_TYPE_IMAGE_TIFF
Definition: inettype.hxx:179
@ CONTENT_TYPE_VIDEO_VDO
Definition: inettype.hxx:188
@ CONTENT_TYPE_APP_VND_MAIL
Definition: inettype.hxx:204
@ CONTENT_TYPE_INET_MESSAGE_RFC822
Definition: inettype.hxx:224
@ CONTENT_TYPE_APP_OCTSTREAM
Definition: inettype.hxx:155
@ CONTENT_TYPE_IMAGE_PCX
Definition: inettype.hxx:177
@ CONTENT_TYPE_INET_MULTIPART_ALTERNATIVE
Definition: inettype.hxx:225
@ CONTENT_TYPE_APP_VND_IMPRESSPACKED
Definition: inettype.hxx:230
@ CONTENT_TYPE_APP_VND_CALC
Definition: inettype.hxx:199
@ CONTENT_TYPE_APP_STARIMAGE
Definition: inettype.hxx:164
@ CONTENT_TYPE_APP_VND_WRITER_WEB
Definition: inettype.hxx:208
@ CONTENT_TYPE_APP_STARWRITER
Definition: inettype.hxx:167
@ CONTENT_TYPE_TEXT_ICALENDAR
Definition: inettype.hxx:221
@ CONTENT_TYPE_TEXT_PLAIN
Definition: inettype.hxx:183
@ CONTENT_TYPE_APP_JAR
Definition: inettype.hxx:231
@ CONTENT_TYPE_APP_STARCHART
Definition: inettype.hxx:161
@ CONTENT_TYPE_IMAGE_JPEG
Definition: inettype.hxx:176
@ CONTENT_TYPE_UNKNOWN
Definition: inettype.hxx:154
@ CONTENT_TYPE_APP_PDF
Definition: inettype.hxx:156
@ CONTENT_TYPE_APP_VND_SUN_XML_WRITER
Definition: inettype.hxx:232
@ CONTENT_TYPE_APP_VND_SUN_XML_IMPRESSPACKED
Definition: inettype.hxx:239
@ CONTENT_TYPE_INET_MULTIPART_DIGEST
Definition: inettype.hxx:226
@ CONTENT_TYPE_AUDIO_MIDI
Definition: inettype.hxx:171
@ CONTENT_TYPE_APP_VND_SUN_XML_MATH
Definition: inettype.hxx:237
@ CONTENT_TYPE_APP_VND_TEMPLATE
Definition: inettype.hxx:212
@ CONTENT_TYPE_APP_VND_IMAGE
Definition: inettype.hxx:202
@ CONTENT_TYPE_APP_VND_SUN_XML_CHART
Definition: inettype.hxx:236
@ CONTENT_TYPE_TEXT_VCALENDAR
Definition: inettype.hxx:220
@ CONTENT_TYPE_AUDIO_AIFF
Definition: inettype.hxx:169
@ CONTENT_TYPE_VIDEO_WEBM
Definition: inettype.hxx:189
@ CONTENT_TYPE_APP_VND_WRITER_GLOBAL
Definition: inettype.hxx:207
@ CONTENT_TYPE_AUDIO_VORBIS
Definition: inettype.hxx:172
@ CONTENT_TYPE_APP_MSWORD
Definition: inettype.hxx:158
@ CONTENT_TYPE_APP_VND_SUN_XML_DRAW
Definition: inettype.hxx:235
@ CONTENT_TYPE_IMAGE_GIF
Definition: inettype.hxx:175
@ CONTENT_TYPE_APP_ZIP
Definition: inettype.hxx:168
@ CONTENT_TYPE_APP_MSEXCEL
Definition: inettype.hxx:216
@ CONTENT_TYPE_TEXT_XMLICALENDAR
Definition: inettype.hxx:222
@ CONTENT_TYPE_APP_STARDRAW
Definition: inettype.hxx:162
@ CONTENT_TYPE_IMAGE_PNG
Definition: inettype.hxx:178
@ CONTENT_TYPE_INET_MULTIPART_PARALLEL
Definition: inettype.hxx:227
@ CONTENT_TYPE_X_CNT_FSYSSPECIALFOLDER
Definition: inettype.hxx:211
@ CONTENT_TYPE_TEXT_VCARD
Definition: inettype.hxx:185
@ CONTENT_TYPE_APP_VND_OUTTRAY
Definition: inettype.hxx:215
@ CONTENT_TYPE_AUDIO_WAV
Definition: inettype.hxx:173
@ CONTENT_TYPE_APP_VND_SUN_XML_CALC
Definition: inettype.hxx:233
@ CONTENT_TYPE_APP_STARCALC
Definition: inettype.hxx:160
@ CONTENT_TYPE_X_VRML
Definition: inettype.hxx:193
@ CONTENT_TYPE_APP_GALLERY_THEME
Definition: inettype.hxx:195
@ CONTENT_TYPE_X_CNT_FSYSFOLDER
Definition: inettype.hxx:191
@ CONTENT_TYPE_APP_STARWRITER_GLOB
Definition: inettype.hxx:196
@ CONTENT_TYPE_APP_VND_WRITER
Definition: inettype.hxx:206
@ CONTENT_TYPE_X_CNT_FSYSBOX
Definition: inettype.hxx:190
@ CONTENT_TYPE_INET_MULTIPART_RELATED
Definition: inettype.hxx:228
@ CONTENT_TYPE_APP_STARMAIL_SDM
Definition: inettype.hxx:197
@ CONTENT_TYPE_APP_STARMATH
Definition: inettype.hxx:166
@ CONTENT_TYPE_IMAGE_BMP
Definition: inettype.hxx:180
@ CONTENT_TYPE_TEXT_HTML
Definition: inettype.hxx:182
@ CONTENT_TYPE_X_STARMAIL
Definition: inettype.hxx:192
@ CONTENT_TYPE_LAST
Definition: inettype.hxx:240
@ CONTENT_TYPE_APP_VND_IMPRESS
Definition: inettype.hxx:203
@ CONTENT_TYPE_APP_MSEXCEL_TEMPL
Definition: inettype.hxx:217
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_SUN_XML_MATH
Definition: inettype.hxx:136
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_OCTSTREAM
Definitions for frequently used media type names.
Definition: inettype.hxx:28
constexpr OUStringLiteral CONTENT_TYPE_STR_IMAGE_BMP
Definition: inettype.hxx:105
constexpr OUStringLiteral CONTENT_TYPE_STR_IMAGE_GIF
Definition: inettype.hxx:100
constexpr OUStringLiteral CONTENT_TYPE_STR_X_CNT_FSYSBOX
Definition: inettype.hxx:95
constexpr OUStringLiteral CONTENT_TYPE_STR_AUDIO_MIDI
Definition: inettype.hxx:91
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_IMAGE
Definition: inettype.hxx:38
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER
Definition: inettype.hxx:126
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARIMAGE
Definition: inettype.hxx:78
constexpr OUStringLiteral CONTENT_TYPE_STR_TEXT_VCARD
Definition: inettype.hxx:118
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_FRAMESET
Definition: inettype.hxx:59
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARMATH
Definition: inettype.hxx:82
constexpr OUStringLiteral CONTENT_TYPE_STR_INET_MULTI_DIGEST
Definition: inettype.hxx:108
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESS
Definition: inettype.hxx:130
constexpr OUStringLiteral CONTENT_TYPE_STR_X_CNT_FSYSSPECIALFOLDER
Definition: inettype.hxx:98
constexpr OUStringLiteral CONTENT_TYPE_STR_TEXT_URL
Definition: inettype.hxx:116
#define INETTYPE_URL_PROT_FILE
Definition: inettype.hxx:145
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_OUTTRAY
Definition: inettype.hxx:50
constexpr OUStringLiteral CONTENT_TYPE_STR_AUDIO_WEBM
Definition: inettype.hxx:94
constexpr OUStringLiteral CONTENT_TYPE_STR_TEXT_ICALENDAR
Definition: inettype.hxx:112
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_NEWS
Definition: inettype.hxx:48
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARHELP
Definition: inettype.hxx:77
constexpr OUStringLiteral CONTENT_TYPE_STR_TEXT_VCALENDAR
Definition: inettype.hxx:117
constexpr OUStringLiteral CONTENT_TYPE_STR_IMAGE_PCX
Definition: inettype.hxx:102
constexpr OUStringLiteral CONTENT_TYPE_STR_INET_MULTI_PARALLEL
Definition: inettype.hxx:110
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_IMPRESS
Definition: inettype.hxx:42
#define INETTYPE_URL_PROT_HTTP
Definition: inettype.hxx:146
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_CALC
Definition: inettype.hxx:32
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_MAIL
Definition: inettype.hxx:44
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_MACRO
Definition: inettype.hxx:64
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_RTF
Definition: inettype.hxx:30
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_SUN_XML_CHART
Definition: inettype.hxx:134
constexpr OUStringLiteral CONTENT_TYPE_STR_AUDIO_AIFF
Definition: inettype.hxx:89
#define INETTYPE_URL_PROT_MAILTO
Definition: inettype.hxx:149
constexpr OUStringLiteral CONTENT_TYPE_STR_IMAGE_JPEG
Definition: inettype.hxx:101
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_GALLERY_THEME
Definition: inettype.hxx:61
constexpr OUStringLiteral CONTENT_TYPE_STR_INET_MULTI_ALTERNATIVE
Definition: inettype.hxx:107
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_WRITER_WEB
Definition: inettype.hxx:56
constexpr OUStringLiteral CONTENT_TYPE_STR_AUDIO_WAV
Definition: inettype.hxx:93
constexpr OUStringLiteral CONTENT_TYPE_STR_VIDEO_VDO
Definition: inettype.hxx:121
constexpr OUStringLiteral CONTENT_TYPE_STR_AUDIO_VORBIS
Definition: inettype.hxx:92
constexpr OUStringLiteral CONTENT_TYPE_STR_AUDIO_BASIC
Definition: inettype.hxx:90
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARMAIL_SDM
Definition: inettype.hxx:80
constexpr OUStringLiteral CONTENT_TYPE_STR_IMAGE_PNG
Definition: inettype.hxx:103
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_TEMPLATE
Definition: inettype.hxx:52
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_MSWORD
Definition: inettype.hxx:73
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_DRAW
Definition: inettype.hxx:36
constexpr OUStringLiteral CONTENT_TYPE_STR_TEXT_HTML
Definition: inettype.hxx:113
#define INETTYPE_URL_PROT_PRIVATE
Definition: inettype.hxx:150
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARWRITER_GLOB
Definition: inettype.hxx:84
constexpr OUStringLiteral CONTENT_TYPE_STR_INET_MULTI_RELATED
Definition: inettype.hxx:111
constexpr OUStringLiteral CONTENT_TYPE_STR_X_VRML
Definition: inettype.hxx:124
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_WRITER_GLOBAL
Definition: inettype.hxx:54
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARDRAW
Definition: inettype.hxx:76
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_MSPPOINT_TEMPL
Definition: inettype.hxx:69
constexpr OUStringLiteral CONTENT_TYPE_STR_X_CNT_FSYSFOLDER
Definition: inettype.hxx:96
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_SUN_XML_IMPRESSPACKED
Definition: inettype.hxx:140
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_CHART
Definition: inettype.hxx:34
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_ZIP
Definition: inettype.hxx:88
constexpr OUStringLiteral CONTENT_TYPE_STR_INET_MULTI_MIXED
Definition: inettype.hxx:109
#define INETTYPE_URL_PROT_MACRO
Definition: inettype.hxx:148
#define INETTYPE_URL_PROT_DATA
Definitions for matching parts of URIs.
Definition: inettype.hxx:144
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARCALC
Definition: inettype.hxx:74
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_JAR
Definition: inettype.hxx:63
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_PDF
Definition: inettype.hxx:29
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_MSPPOINT
Definition: inettype.hxx:70
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_SUN_XML_WRITER_GLOBAL
Definition: inettype.hxx:138
constexpr OUStringLiteral CONTENT_TYPE_STR_TEXT_XMLICALENDAR
Definition: inettype.hxx:115
constexpr OUStringLiteral CONTENT_TYPE_STR_IMAGE_GENERIC
Definition: inettype.hxx:99
constexpr OUStringLiteral CONTENT_TYPE_STR_VIDEO_MSVIDEO
Definition: inettype.hxx:119
constexpr OUStringLiteral CONTENT_TYPE_STR_VIDEO_THEORA
Definition: inettype.hxx:120
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_WRITER
Definition: inettype.hxx:58
constexpr OUStringLiteral CONTENT_TYPE_STR_INET_MSG_RFC822
Definition: inettype.hxx:106
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_MSEXCEL
Definition: inettype.hxx:67
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_SUN_XML_DRAW
Definition: inettype.hxx:132
constexpr OUStringLiteral CONTENT_TYPE_STR_X_STARMAIL
Definition: inettype.hxx:123
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARCHART
Definition: inettype.hxx:75
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARIMPRESS
Definition: inettype.hxx:79
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARMAIL_SMD
Definition: inettype.hxx:81
#define INETTYPE_URL_PROT_HTTPS
Definition: inettype.hxx:147
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_MATH
Definition: inettype.hxx:46
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_CDE_CALENDAR_APP
Definition: inettype.hxx:87
constexpr OUStringLiteral CONTENT_TYPE_STR_IMAGE_TIFF
Definition: inettype.hxx:104
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_STARWRITER
Definition: inettype.hxx:85
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_MSEXCEL_TEMPL
Definition: inettype.hxx:66
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_VND_SUN_XML_CALC
Definition: inettype.hxx:128
constexpr OUStringLiteral CONTENT_TYPE_STR_APP_MSWORD_TEMPL
Definition: inettype.hxx:72
void * p
#define SAL_N_ELEMENTS(arr)
int i
std::basic_string_view< charT, traits > getToken(std::basic_string_view< charT, traits > sv, charT delimiter, std::size_t &position)
HashMap_OWString_Interface aMap
sal_uInt16 sal_Unicode